springcloud2.x 配置中心 1.x 2.x区别 填坑记

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;
    }
}

 

没有更多推荐了,返回首页