springcloud1.x和2.x 在配置上还是有不少坑的,配置中心这块我在百度遨游了几个小时发现都是纸上谈兵,没一个能用的,另外感谢大中华局域网,翻了半天墙才出去,浪费无数时间,终于在谷歌上找到了答案。
说正题,1.x和2.x配置上没有太大区别,1.x 直接可以在客户端/refresh刷新配置。2.x需要使用/actuator/refresh。另外。2.x还需要在yml里面配置如下。否则refresh 404。
management:
endpoints:
web:
exposure:
include: refresh
贴上2.x代码,供参考。
yml:
server.port: 8999
spring:
application:
name: config-client
profiles:
active: dev
cloud:
config:
uri: http://localhost:8080
eureka:
client:
register-with-eureka: true
service-url:
defaultZone: http://root:root@localhost:8761/eureka
management:
endpoints:
web:
exposure:
include: refresh
pom:注意eureka的包名也变了
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<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>
</dependencies>
启动类
@SpringBootApplication
@EnableDiscoveryClient
public class ConfigClientApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigClientApplication.class, args);
}
}
controller入口:
@RestController
@RefreshScope
public class ConfigClientController {
@Value("${profile}")
private String profile;
@GetMapping("/hello")
public String hello() {
return this.profile;
}
}