Git环境搭建
使用码云环境搭建git服务器端
码云环境地址:https://gitee.com/majie2018
服务端详解
项目名称:springboot2.0-config_server
Maven依赖信息
org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE org.springframework.cloud spring-cloud-dependencies Finchley.M7 pom import org.springframework.cloud spring-cloud-config-server org.springframework.cloud spring-cloud-starter-netflix-eureka-client spring-milestones Spring Milestones https://repo.spring.io/libs-milestone false
application.yml配置
###服务注册到eureka地址eureka: client: service-url: defaultZone: http://localhost:8100/eurekaspring: application: ####注册中心应用名称 name: config-server cloud: config: server: git: ###git环境地址 uri: https://gitee.com/itmayi/config.git ####搜索目录 search-paths: - config ####读取分支 label: master####端口号 server: port: 8888
项目启动
@EnableConfigServer@SpringBootApplicationpublic class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); }}
@EnableConfigServer 开启分布式配置中心服务器端
读取配置文件信息 http://127.0.0.1:8888/config-client-dev.properties
客户端详解
项目名称:springboot2.0-config_client
Maven依赖信息
org.springframework.boot spring-boot-starter-parent 2.0.1.RELEASE org.springframework.cloud spring-cloud-dependencies Finchley.M7 pom import org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-config-client org.springframework.cloud spring-cloud-starter-netflix-eureka-client spring-milestones Spring Milestones https://repo.spring.io/libs-milestone false
bootstrap.yml
spring: application: ####注册中心应用名称 name: config-client cloud: config: ####读取后缀 profile: dev ####读取config-server注册地址 discovery: service-id: config-server enabled: true##### eureka服务注册地址 eureka: client: service-url: defaultZone: http://localhost:8100/eureka server: port: 8882
读取配置文件
@RestControllerpublic class IndexController { @Value("${name}") private String name; @RequestMapping("/name") private String name() { return name; }}
动态刷新数据
在SpringCloud中有手动刷新配置文件和实时刷新配置文件两种方式。
手动方式采用actuator端点刷新数据
实时刷新采用SpringCloud Bus消息总线
actuator端点刷新数据
Maven依赖信息
org.springframework.boot spring-boot-starter-actuator
Bootstrap.xml新增
开启监控断点
management: endpoints: web: exposure: include: "*"
生效前提
在需要刷新的Bean上添加@RefreshScope注解。
@RestController// @SpringBootApplication@RefreshScopepublic class ConfigClientController {http://127.0.0.1:8882/actuator/refresh @Value("${itmayieduInfo}") private String itmayieduInfo;
当配置更改时,标有@RefreshScope的Bean将得到特殊处理来生效配置
手动刷新接口
Post请求手动刷新
启动刷新器 从cofnig server读取
实际项目中一般都采用手动刷新, 基于bus总线的实时刷新太占内存,消耗cpu