我们使用分布式架构 搭建项目时 就比如说我们更改了数据库的密码

那如果有十几个微服务配置在不同的服务器上 我们是不是得一个一个服务器的去更改 

那样就相当的麻烦 不光麻烦 还及其容易错 所以基本是不可能这样实现

这里有一个解决方式 可以把项目的配置放到gitlab上 从gitlab来读取 这样就方便了我们的配置 

那么就要登陆到gitlab上创建账号 发布项目 等等 这些东西可以到

这个教程看一下 这里不多说 

然后在项目中创建一个配置中心的模块 

// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-config-server
    compile group: 'org.springframework.cloud', name: 'spring-cloud-config-server'

添加config-server的依赖 因为它是配置中心服务端 在客户端的话需要添加

// https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-starter-config
    compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-config'

接着往下看 配置中心的配置文件 

spring:
  application:
    name: config-center //项目名
  cloud:
    config:
      server:
        git:
          uri: https://gitlab.com/wangkeee/poppy-mall.git  //git的地址 
          clone-on-start: true //是否在使用配置文件时拷贝到本地 
          search-paths: local //读取项目中的那个文件夹
server:
  port: 8887 //端口号

注意 这里的配置文件需要使用bootstrap.yml 而不是之前使用的application.yml 

他们基本上是一样的 但bootstrap.yml的执行要比application.yml优先 

想一下 在读取项目时 配置文件当然是需要优先读取的 在本地的话倒还好 这里把配置文件放到git上 读取缓慢 所以需要优先读取

然后看一下git项目的搭建 

springsecurity 分布式 spring cloud分布式_springsecurity 分布式

在文件夹中创建微服务的配置文件 并且把微服务的配置文件的内容拷贝进去 

文件的命名是配置文件中

spring:
  application:
    name:

的值.yml 

springsecurity 分布式 spring cloud分布式_spring_02

然后就可以把对应微服务的配置文件删除 也加上一个bootstrap.yml 

看一下里面的配置

spring:
  application:
    name: project-poppy-mall //项目名
  cloud:
    config:
      uri: http://localhost:8887 //配置中心的地址

在配置中心的启动类上 加上

@SpringBootApplication //启动项目
@EnableConfigServer //代表它是一个配置中心

然后就可以运行配置中心 就可以运行成功了 

 然后就可以照常运行删除了配置文件的微服务了 如果想对微服务的配置文件更改只需要登陆gitlab上进行更改就行了 非常方便

但这样做我们想切换环境 比如把项目打成jar包到测试那边 是不是每次都需要一个一个的更改配置文件 当然不能这么干 那我们就可以通过这种方式

springsecurity 分布式 spring cloud分布式_spring_03

把配置文件分成三个 bootstrap-local与bootstrap-test文件中的代码基本与原配置文件一样 只是test的访问文件夹是test

bootstrap的代码就只有

spring:
  profiles:
    active: test

代表指定它是测试环境 但这样做也不大好 我们每次还是要修改代码 那么能不能不修改代码就能改变成测试或开发环境呢

我们通过build任务把项目打成jar包 

springsecurity 分布式 spring cloud分布式_springsecurity 分布式_04

之后可以在cmd中通过java -jar来打开这个jar包 我们只需要在语句后面输入java -jar jar包名 --spring.profiles.active=test或者local

就可以指定开发或生产环境了