spring boot 使用2.2.x,spring cloud使用Hoxton
========配置中心的服务端============
1.添加eureka,config-server依赖包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
2.在启动类上加入@EnableConfigserver和@EnableEurekaClient(因为别的服务要从eureka上注册的configserver中拉取配置)
3.此处的配置文件在码云中,在配置文件中加入git配置(默认就是以git的方式存储配置文件)
spring.cloud.config.server.git.uri=https://gitee.com/xxx/xxx
spring.cloud.config.server.git.username=
spring.cloud.config.server.git.password=
4.创建不同环境下的配置文件,上传到gitee
**启动server端,通过[ip]:[port]/[application.name]/[profile]
ex:在gitee上存储的文件名称为config-client-dev.properties,那么config-client就是application.name,dev就是profile
==========配置中心的客户端============
1.在客户端中加入依赖包(eureka依赖和config依赖)
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-config</artifactId> </dependency>
2.修改配置文件的名称
application.properties => bootstrap.properties
原因:bootstrap的内容优先加载于application
在配置文件中加入如下配置:
#开启配置中心的配置,默认为false,即不开启
spring.cloud.config.discovery.enabled=true
#对应eureka中的配置中心serviceId,默认是configserver
spring.cloud.config.discovery.serviceId=config-server
#指定环境
spring.cloud.config.profile=dev
#git标签
spring.cloud.config.label=master
==========================
在gitee上修改了配置文件的内容之后,怎么不重启客户端的情况下让其生效。使用spring boot的actuator
1)加入配置文件
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
2)模拟HTTP的post请求/actuator/refresh
3)在需要从配置中心拉取的字段的所在类上添加@RefreshScope注解