【Spring Cloud】02-Config

2019-08-27  本文已影响0人  Y了个J

添加pom依赖

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>

添加配置文件

server:
  port: 8888

spring:
  application:
    name: @artifactId@
  profiles:
    active: native
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest

management:
  endpoints:
    web:
      exposure:
        include: 'bus-refresh'

# 本地开发模式
---
spring:
  profiles: native
  security:
    user:
      name: admin
      password: 123456
  cloud:
    config:
      server:
        native:
          search-locations: classpath:/config/   #开发模式读取工程目录下面配置

eureka:
  instance:
    prefer-ip-address: true   #访问路径可以显示IP地址
  client:
    service-url:
      defaultZone: http://admin:admin@springcloud-eureka:8761/eureka/

# 生产模式
---
spring:
  profiles: prod
  rabbitmq:
    host: localhost
    port: 5672
    username: guest
    password: guest
  cloud:
    config:
      server:
        git:
          uri: https://gitee.com/756585379/springcloud-config-repo.git
          username: your_username
          password: your_password
          clone-on-start: true #开启启动时直接从git获取配置
#          search-paths: '{application}'

eureka:
  instance:
    prefer-ip-address: true
  client:
    service-url:
      defaultZone: http://admin:admin@springcloud-eureka:8761/eureka/,http://admin:admin@springcloud-eureka:8762/eureka/,http://admin:admin@springcloud-eureka:8763/eureka/

刷新配置
在bootstrap.yml添加如下配置,暴露/actuator/refresh 端点:

# 暴露监控端点
management:
  endpoints:
    web:
      exposure:
        include: '*'

待刷新的配置属性所在的类上添加了@RefreshScope注解 ,例如:

@RestController
@RefreshScope
public class ConfigClientController {
  @Value("${profile}")
  private String profile;

  @GetMapping("/profile")
  public String hello() {
    return this.profile;
  }
}

修改profile 配置后,只需向应用的/actuator/refresh 端点发送POST请求,即可刷新该属性。例如:

curl -X POST http://localhost:8082/actuator/refresh

实战项目地址

上一篇 下一篇

猜你喜欢

热点阅读