文章目录
Spring Cloud Config为分布式系统中的外部化配置提供了服务器和客户端支持。使用配置服务器,您有一个中心位置来管理跨所有环境的应用程序的外部属性。
准备新建两个项目
- config-server
- config-client
核心依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
开启配置中心
@SpringBootApplication
@EnableConfigServer //开启配置中心服务
public class ConfigApp {
public static void main(String[] args) {
SpringApplication.run(ConfigApp.class,args);
}
}
bootstrap.yml
server:
port: 8770
spring:
application:
name: config-server
# profiles:
# active: native # 开启此项则使用本地配置
cloud:
config:
name: springcloud-config #{application}
server:
git:
uri: http://11.11.150.35:30200/DuebassLei/springcloud-config.git
username: DuebassLei
password: xxxxxxxxxx
http 请求地址和资源映射对应如下:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
{application}
映射客户端的"spring.application.name"
{profile}
映射客户端的"spring.profiles.active"
(逗号分隔列表){label}
它是服务端的特性,标记版本的一组配置文件
Git远程仓库添加配置文件
在GitLib中新建 springcloud-config-dev.yml文件
测试
访问:
http://localhost:8770/springcloud-config/dev
到此Config-server设置成功。
核心依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
bootstrap.yml
server:
port: 8771
spring:
application:
name: config-client
cloud:
config:
name: springcloud-config
profile: dev
uri: http://localhost:8770/ # config-server中心项目地址
label: master
测试
展示从远程Config
获取到的配置数据信息
@SpringBootApplication
@RestController
public class ConfigClientApp {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApp.class,args);
}
@Value("${order.name}")
String orderName;
@RequestMapping("/test")
public String test() {
return "client ====>>> " + orderName;
}
}
访问:
http://localhost:8771/test
查看数据,会显示dev配置文件中${order.name}
对应内容
在启动类加入_@EnableDiscoveryClient,与_常规的_Eureka_使用无太大差别,修改 config-client
中 bootstrap.yml
:
server:
port: 8771
spring:
application:
name: config-client
cloud:
config:
profile: dev
label: master
discovery:
enabled: true
service-id: config-server #微服务ConfigServer对应的ServerId
删除spring.cloud.config.uri
,并添加
discovery:
enabled: true
service-id: config-server #微服务ConfigServer对应的ServerId
源码