查看原文
其他

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

2017-10-11 javastack Java技术栈



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

引入依赖

  1. <dependencies>

  2.    <dependency>

  3.        <groupId>org.springframework.cloud</groupId>

  4.        <artifactId>spring-cloud-starter-eureka</artifactId>

  5.    </dependency>

  6.    <dependency>

  7.        <groupId>org.springframework.cloud</groupId>

  8.        <artifactId>spring-cloud-starter-config</artifactId>

  9.    </dependency>

  10.    <dependency>

  11.        <groupId>org.springframework.boot</groupId>

  12.        <artifactId>spring-boot-starter-aop</artifactId>

  13.    </dependency>

  14.    <dependency>

  15.        <groupId>org.springframework.retry</groupId>

  16.        <artifactId>spring-retry</artifactId>

  17.    </dependency>

  18. </dependencies>

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

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

增加启动类

  1. @EnableDiscoveryClient

  2. @SpringBootApplication

  3. public class ServiceApplication {

  4.    public static void main(String[] args) {

  5.        SpringApplication.run(ServiceApplication.class, args);

  6.    }

  7. }

添加配置

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

  1. spring:

  2.  application:

  3.    name: config-client

  4.  cloud:

  5.    config:

  6.      #username:

  7.      #password:

  8.      name: ${git.application}

  9.      profile: ${git.profile}

  10.      label: ${git.label}

  11.      fail-fast: true

  12.      retry:

  13.        initial-interval: 2000

  14.        max-attempts: 5

  15.      discovery:

  16.        enabled: true

  17.        service-id: config-center

  18. eureka:

  19.  client:

  20.    serviceUrl:

  21.      defaultZone: ${register-center.urls}

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

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

  1. spring:

  2.  profiles:

  3.    active: config-client1

  4. eureka:

  5.  instance:

  6.    prefer-ip-address: true  

  7.    instance-id: ${spring.cloud.client.ipAddress}:${server.port}

  8.    lease-expiration-duration-in-seconds: ${lease-expiration-duration-in-seconds}

  9.    lease-renewal-interval-in-seconds: ${lease-renewal-interval-in-seconds}

  10. ---

  11. spring:

  12.  profiles: config-client1

  13. server:

  14.  port: ${config-client1.server.port}

  15. ---

  16. spring:

  17.  profiles: config-client2

  18. server:

  19.  port: ${config-client2.server.port}

Maven filter配置

  1. ...

  2. #git

  3. git.application=application

  4. git.profile=dev

  5. git.label=master

  6. ...

读取配置

  1. @RestController

  2. public class TestController {

  3.    @Value("${username}")

  4.    private String username;

  5. ...

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

启动服务

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

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

  2. spring-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不同环境配置


看完有没有收获?

分享到朋友圈给更多的人吧。




  Java技术栈  
微信公众号:「Javastack

分享Java干货,高并发编程,热门技术教程,微服务及分布式技术,架构设计,区块链技术,人工智能,大数据,Java面试题,以及前沿热门资讯等。


 ▼长按二维码关注我们↓↓↓


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存