因爲微服務設計到的服務個數較多,而衆多的配置文件便會須要一個統一的配置管理工具來正確的管理,避免人工的過多參與,而spring cloud全家桶中的spring cloud config便充當了這個功能,解決分佈式系統配置管理問題。下面開始學習springcloud config的相關信息。git
spring cloud config包含server端和client端,以及能夠存儲配置文件的諸如SVN,github,gitlab上的文件。github
如下用實例來驗證之:web
1.server端:spring
須要springcloud config相關的依賴app
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-starter-actuator') compile('org.springframework.cloud:spring-cloud-starter-config') compile('org.springframework.cloud:spring-cloud-config-server') testCompile group: 'junit', name: 'junit', version: '4.12' }
須要開啓@EnableConfigServer分佈式
@SpringBootApplication @EnableConfigServer public class ConfigApplication { public static void main(String[] args) { SpringApplication.run(ConfigApplication.class, args); } }
yml配置文件spring-boot
server: port: 8888 #服務端口需爲8888,改成其餘端口失敗,還不知爲什麼 spring: cloud: config: name: config-server #項目名稱 label: master server: git: #uri: https://@gitlab.com/xxx.git #若爲gitlab的地址,以git爲後綴 uri: https://github.com/gholly/configProperties #github的地址 username: xxx password: xxx searchPaths: configPath //配置文件的路徑
2.配置文件以下:微服務
地址爲:https://github.com/gholly/configProperties 此項目文件爲公共文件無需輸入用戶名密碼方可測試工具
3.客戶端gitlab
依賴文件
dependencies { compile('org.springframework.boot:spring-boot-starter-web') compile('org.springframework.boot:spring-boot-starter-actuator') compile('org.springframework.cloud:spring-cloud-starter-config') testCompile('org.springframework.boot:spring-boot-starter-test') }
客戶端文件
@RestController @RefreshScope @SpringBootApplication public class ClientApplication { public static void main(String[] args) { SpringApplication.run(ClientApplication.class, args); } @Value("${test}") public String hh; @RequestMapping("/hjk") public String hhh(){ return hh; } }
配置文件:
server: port: 9000 spring: cloud: config: label: master uri: http://localhost:8888/ #config服務端的服務 profile: dev 配置文件前綴之一 application: name: config #此名字需與git上配置文件的名字相一致
4.測試結果: