SpringCloud配置中心客户端读取配置

来源:互联网 发布:linux system函数阻塞 编辑:程序博客网 时间:2024/06/05 03:55

微服务连接配置中心来实现外部配置的读取。

引入依赖

<dependencies>    <dependency>        <groupId>org.springframework.cloud</groupId>        <artifactId>spring-cloud-starter-eureka</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-aop</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.retry</groupId>        <artifactId>spring-retry</artifactId>    </dependency></dependencies>

spring-cloud-starter-config:配置中心客户端的依赖。

spring-boot-starter-aop,spring-retry:这两个是连接配置中心快速失败和重试需要用到的依赖。

增加启动类

@EnableDiscoveryClient@SpringBootApplicationpublic class ServiceApplication {    public static void main(String[] args) {        SpringApplication.run(ServiceApplication.class, args);    }}

添加配置

bootstrap.yml中添加如下配置,必须是bootstrap,application中不行。

spring:   application:     name: config-client  cloud:    config:      #username:       #password:       name: ${git.application}      profile: ${git.profile}      label: ${git.label}      fail-fast: true      retry:        initial-interval: 2000        max-attempts: 5      discovery:         enabled: true        service-id: config-center       eureka:  client:     serviceUrl:      defaultZone: ${register-center.urls}

可以看出配置比较简单,下面也不再详述。

application.yml配置文件参考如下:

spring:   profiles:     active: config-client1    eureka:  instance:    prefer-ip-address: true      instance-id: ${spring.cloud.client.ipAddress}:${server.port}    lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds}    lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds}---spring:   profiles: config-client1      server:   port: ${config-client1.server.port}      ---spring:   profiles: config-client2  server:   port: ${config-client2.server.port}

Maven filter配置

... #gitgit.application=applicationgit.profile=devgit.label=master...

读取配置

@RestControllerpublic class TestController {    @Value("${username}")    private String username;    ...

使用Value就能读取配置中心的配置,当然也可以通过其他方式获取SpringCloud中的配置,参考之前SpringBoot系列文章。

启动服务

通过指定Profile启动两台微服务,它们可以读取配置中心的内容。

spring-boot:run -Drun.profiles=config-client1 -P devspring-boot:run -Drun.profiles=config-client2 -P dev

推荐阅读

什么是Spring Boot?
Spring Boot开启的2种方式
Spring Boot Starters启动器
Spring Boot定制启动图案
Spring Boot核心配置
Spring Boot功能实战
Spring Boot自动配置原理、实战
Spring Boot Runner启动器
Spring Boot - Profile不同环境配置

看完有没有收获?分享到朋友圈给更多的人吧。


原创粉丝点击