Spring Cloud Config 配置读取 github 上的文件内容
1. github 新建个仓库,并添加两个配置文件
配置文件 zuul-dev.yml 内容:
user:
name: java
age: 20
配置文件 zuul-prod.yml 内容:
user:
name: spring
age: 30
内容随意,主要用于测试
2. 项目添加 spring-cloud-config-server 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
<version>2.2.2.RELEASE</version>
</dependency>
3. 添加配置
spring:
application:
name: spring-cloud-config
cloud:
config:
server:
git:
default-label: main
uri: 这里填github上复制的那段地址
如果你的分支是 main,则配置文件需要添加 default-label: main
如果是 master,则不需要添加
4. 启动类添加注解 @EnableConfigServer
项目启动后访问 ip:端口/zuul-dev.yml 和 ip:端口/zuul-prod.yml
分别显示配置文件中的内容则表示配置成功。
配置客户端读取 github 上的文件内容
1. 添加 spring-cloud-starter-config 依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
2. 配置文件
spring:
application:
name: spring-cloud-zuul-server
cloud:
config:
# github分支名
label: main
# 要读取的文件前缀
name: zuul
# 要读取的文件后缀
profile: dev
# 使用eureka服务发现,表示调用的是 spring-cloud-config 项目
discovery:
enabled: true
service-id: spring-cloud-config
3. 使用
@Value("${user.name}")
private String name;
@Value("${user.age}")
private Integer age;
动态刷新配置
1. 添加 spring-boot-starter-actuator 依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
2. 在用到配置文件的类上添加注解 @RefreshScope
3. 配置文件中配置
# 配置动态刷新git配置的路径终端请求地址
management:
endpoints:
web:
exposure:
include: refresh