导入依赖
<!-- 表示是配置总控中心的客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- 引入actuator的监控 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 服务注册 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class ConfigClientMain3355 {
public static void main(String[] args){
SpringApplication.run(ConfigClientMain3355.class, args);
}
}
配置文件
Bootstrap.yaml
# 该配置文件是系统级的资源配置项,优先级比application.yml高
# 默认情况下,不会被本地的application配置文件覆盖
# "Bootstrap Context",是 "Application Context" 的父上下文,会从外部源加载配置属性并解析
server:
port: 3355
spring:
application:
name: config-client
cloud:
config:
# 在 http://localhost:3344/master/config-dev.yaml 读取 master分支上config-dev.yaml的配置文件会
# 分支名称
label: master
# 配置文件名称
name: config
# 读取后缀的名称
profile: dev
# 本地的配置总控中心地址
uri: http://localhost:3344
# 服务注册到eureka
eureka:
client:
service-url:
defaultZone: http://localhost:7001/eureka
# 暴露给actuator的监控端口
management:
endpoints:
web:
exposure:
include: "*"
测试类
主要是为了测试能否读取到远程的配置文件的信息。
@RestController
public class ConfigClientController {
/**
* 读取本地的配置文件Bootstrap里面的server.port
*/
@Value("${server.port}")
private String serverPort;
/**
* 读取远程的配置文件里面的config.info
*/
@Value("${config.info}")
private String configInfo;
@GetMapping("/configInfo")
public String getConfigInfo(){
return serverPort + "\t" + configInfo;
}
}