server端
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
application.yml
server: port: 8888 spring: application: name: config-server profiles: active: cloud #navtive为加载本地配置 cloud: config: server: git: uri: 配置文件git地址 searchPaths: 配置文件所在文件夹名称 username: git账号password: git密码
启动类
@EnableConfigServer
@SpringBootApplication
public class ConfigServer {
public static void main(String[] args) {
SpringApplication.run(ConfigServer.class, args);
}
}
客户端
pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- actuator 监控 为了能够不重启实现客户端配置文件动态刷新需要添加该依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
</dependencies>
application.yml
server:
port: 8080
spring:
application:
name: congfig-client
cloud:
#配置服务器
config:
uri: http://localhost:8888/ 配置服务器地址
#配置名称
name: application-datasource #与git中配置文件名称一致
#最后定向到文件:application-datasource-dev.[properties|yml|
profile: dev #与git中配置文件最后结尾一致
客户端
@ComponentScan
@EnableAutoConfiguration
@RestController
@RefreshScope //要实现动态刷新配置必须添加该注解
public class ConfigClient {
@Value("${name}")
String name = "World";
@RequestMapping("/")
public String home() {
return "Hello " + name;
}
public static void main(String[] args) {
SpringApplication.run(ConfigClient.class, args);
}
}
注:要刷新客户端配置时,必须在客户端用POST方式调用http://localhost:8080/refresh