Spring Cloud 教程第十四章 spring-cloud-starter-config使用教程

不知不觉已经写到第十四章了,Spring cloud 的使用很简单,但是要深入就需要花费更多的精力。本文我们通过一个案例来搞定 spring-cloud-starter-config,也就是配置中心的使用。

配置中心其实理解起来很简单,通过下面的一张图,我相信你就会明白吧。

Spring cloud 配置中心

别看这张图丑,但是能大致说明整个配置中心的架构交互方式。下面我们开始具体的代码吧!

还是老规矩,我们先创建一个名为 xttblog-config-client 的工程。pom.xml 的配置内容如下:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.13.RELEASE</version>
</parent>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>Edgware.SR4</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>
<dependencies>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-config</artifactId>
    </dependency>

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

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

然后是 bootstrap.yml 文件的内容:

server:
  port: 8876

eureka:
  instance:
    hostname: localhost
  client:
    serviceUrl:
      defaultZone: http://${eureka.instance.hostname}:8761/eureka/

spring:
  application:
    name: xttblog
  cloud:
    config:
      label: master
      profile: dev
      # 添加zuul 的注意,这里配zuul的地址进行转发
      uri: http://localhost:8877/

这里需要说一下的是为什么我们写的是 bootstrap.yml 而不是 application.yml。这是因为 spring boot 的加载属性文件有优先级。bootstrap.yml 的优先级高,需要在加载属性之前去 spring cloud config server 上取配置文件,那 spring cloud config 相关配置就是需要最先加载的,而 bootstrap.yml 的加载是先于 application.yml 的,所以 config client 要配置 config 的相关配置就只能写到 bootstrap.yml 里了。

接着就是启动类了,代码如下:

@SpringBootApplication
public class ConfigClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(ConfigClientApplication.class, args);
    }
}

下面我们再来写一个 Controller 类,来验证我们配置文件获取的内容对不对。代码如下:

@RestController
public class XttblogController {

    @Value("${site.url}")
    private String url;
    @Value("${site.active}")
    private String active;

    @RequestMapping("/test")
    public String test(){
        return "test:test config client, url: " + url + ",active: " + active;
    }
}

到这里所有的代码都写完了,我们启动程序。在浏览器里输入 http://localhost:8876/test 就能看到我们成功的获取到了 xttblog-dev.yml 配置文件中的属性内容。

到这里看似 Spring Cloud 的内容差不多写完了,但是你仔细想想,我们是不是还缺点什么。后面我们继续学习!

Spring Cloud 教程第十四章 spring-cloud-starter-config使用教程

: » Spring Cloud 教程第十四章 spring-cloud-starter-config使用教程

原创文章,作者:端木书台,如若转载,请注明出处:https://blog.ytso.com/251845.html

(0)
上一篇 2022年5月3日
下一篇 2022年5月3日

相关推荐

发表回复

登录后才能评论