Spring Cloud Config 使用本地配置檔案
阿新 • • 發佈:2019-02-15
一、簡介
在分散式系統中,由於服務數量巨多,為了方便服務配置檔案統一管理,實時更新,所以需要分散式配置中心元件。在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不如直接修改配置檔案方便,特此記錄下來。