1. 程式人生 > >Spring Cloud Config 使用本地配置檔案

Spring Cloud Config 使用本地配置檔案

一、簡介

在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在Spring Cloud中,有分散式配置中心元件spring cloud config ,它支援配置服務放在配置服務的記憶體中(即本地),也支援放在遠端Git倉庫中。在spring cloud config 元件中,分兩個角色,一是config server,二是config client。

二、配置

2.1 Spring Cloud Config Server專案

1 pom.xml中匯入Config Server需要的包

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

2 在Application類中新增@EnableConfigServer註解

package com.sunbufu;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import
org.springframework.cloud.config.server.EnableConfigServer; @EnableConfigServer @SpringBootApplication public class ConfigServerApplication { public static void main(String[] args) { SpringApplication.run(ConfigServerApplication.class, args); } }

3 修改配置檔案application.yml,指定本地客戶端配置檔案的路徑

spring:
  profiles:
    active: native
  cloud:
    config:
      server:
        native:
          searchLocations: F:/conf

4 準備客戶端配置檔案
配置檔案路徑
client-dev.yml檔案的內容:

server:
  #設定成0,表示任意未被佔用的埠
  port: 8081
nickName: world

2.2 Spring Cloud Config Client專案

1 pom.xml中匯入Config Client需要的包(注意,此處跟Config Server的配置不同

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

2 在src/main/resources中,新建bootstrap.yml檔案
bootstrap檔案會在application檔案之前載入,一般是不會變的。

spring:
  application:
    name: client
  cloud:
    config:
      uri: http://127.0.0.1:8888
      profile: dev
      label: master

資原始檔對映如下:

  • /{application}/{profile}[/{label}]
  • /{application}-{profile}.yml
  • /{label}/{application}-{profile}.yml
  • /{application}-{profile}.properties
  • /{label}/{application}-{profile}.properties

    3 新建HelloController用來顯示讀取到的配置

package com.sunbufu.controller;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Value("${nickName}")
    private String nickName;

    @RequestMapping("/hello")
    public String hello() {
        return "hello " + nickName;
    }

}

效果

三、總結

原始碼地址
總覺的使用svn或者git不如直接修改配置檔案方便,特此記錄下來。