您好,登錄后才能下訂單哦!
本篇內容介紹了“Spring Cloud Config配置中心的native模式有什么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
由于很多時候,生產環境沒有git,也沒有svn等等,所以需要使用native模式,鑒于網上缺少相關的資料,因此以此為切入點,記錄一下native模式下Spring Cloud Config一些常用的功能
首先,老套路引入pom
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
bootstrap.yml配置本地存儲 官方文檔在此
spring.profiles.active=composite,他是一個list,我們這里面因為是本地,添加一條type=native,并配上search-locations,這個屬性可以用class-path,也可以用絕對路徑,但是正常情況下,建議用絕對路徑,因為配置文件會有改動,如果放在項目里面,改動起來比較麻煩。
還要設置pring.cloud.config.server.bootstrap=true
config文件夾下,我放了三個文件config-info-dev.yml,config-info-test.yml,config-info-prod.yml,里面存放了不通內容,主要就為了測試
server: port: 8001 spring: application: name: config-server-1 profiles: active: composite cloud: config: server: composite: - type: native # 文件存放的絕對路徑,源碼里面我用絕對路徑的方式放在了resources里面,這里需要改成自己的路徑 search-locations: file:///Users/sunhan/Downloads/config bootstrap: true
啟動類
@SpringBootApplication @EnableConfigServer public class EurekaConfigApp { public static void main(String[] args) { SpringApplication.run(EurekaConfigApp.class, args); } }
至此,config-server暫告一段路
繼續,引入pom
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-client</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
client添加了兩個配置文件一個bootstrap.yml, 官方文檔也說了If you use the bootstrap flag, the config server needs to have its name and repository URI configured in bootstrap.yml.
。config的主要說明如下
uri: 就是config-server的請求路徑
profile、name:這里面的profile和spring.profiles.active沒有半毛錢關系,他僅僅是區分引用那個文件,比如配置文件config-info-dev.yml,name就是config-info,profile就是dev,還有一個label屬性,官方解釋是The label name to use to pull remote configuration properties
,我的理解就是應該在git等遠程倉庫中會用的上,至少在文件匹配,profile和name夠用了
spring: cloud: config: uri: http://localhost:8001 profile: prod name: config-info
還有一個就是spring-boot的application.yml文件,其中spring.cloud.config.name默認值就是spring.application.name
server: port: 8002 spring: application: name: config-info profiles: # 這里主要是為了掩飾和config.profile的區分 active: dev
最后,貼出來啟動類
@SpringBootApplication public class ConfigClientApp1 implements CommandLineRunner { public static void main(String[] args) { SpringApplication.run(ConfigClientApp1.class, args); } @Value("${env}") private String env; @Value("${hello}") private String hello; public void run(String... args) { System.out.println("================"); System.out.println(env); System.out.println(hello); System.out.println("================"); } }
輸入結果
================ prod1 dev ================
接下來,就要考慮刷新的問題了。手動刷新,亦或是整合Spring Cloud Bus熱刷新,下次侃
“Spring Cloud Config配置中心的native模式有什么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。