概述
Spring Cloud Config為分佈式系統中的外部化配置提供服務器端和客戶端支持。使用Config Server,您可以在中心位置管理所有環境中應用程序的外部屬性。客戶端和服務器上的概念都與Spring Environment和PropertySource抽象映射相同,因此它們非常適合Spring應用程序,但可以與以任何語言運行的任何應用程序一起使用。
在應用程序從開發人員到測試人員再到生產人員的整個部署過程中,您可以管理這些環境之間的配置,並確保應用程序具有它們遷移時所需的一切。服務器存儲後端的默認實現使用git,因此它輕鬆支持帶標籤的配置環境版本,並且可以通過各種工具來訪問這些內容來管理內容。添加替代實現並將其插入Spring配置很容易。
•去碼雲創建倉庫,克隆到本地文件夾,配置application.yml文件
•application.yml配置
spring: profiles: active: dev --- spring: profiles: dev application: name: springcloud-config-dev --- spring: profiles: test application: name: springcloud-config-test
•把這個文件提交到碼雲上,總共四步。
第一步:
把文件添加到暫存區
git add
在這裡添加
第二步:
查看狀態
git status
第三步:
提交
git commit -m "fist commit" //fist commit是描述信息
第四步:
push到遠程
git push origin master
測試:成功
•創建服務端Server項目
•導入依賴
•編寫配置
server: port: 3344 spring: application: name: springcloud-congi-server #連接遠程倉庫 cloud: config: server: git: uri: https://gitee.com/springandspring/springcloud-config.git #這裡的uri是碼雲上自己創建的倉庫HTTPS下載的地址
•開啟功能
@EnableConfigServer
•測試
•更上面一樣
•config-client配置
spring: profiles: active: dev --- server: port: 8201 #spring的配置 spring: profiles: dev application: name: springcloud-provider-dept #Eureka的配置,服務註冊到哪裡 eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka/ --- server: port: 8202 #spring的配置 spring: profiles: test application: name: springcloud-provider-dept #Eureka的配置,服務註冊到哪裡 eureka: client: service-url: defaultZone: http://eureka7001.com:7001/eureka/
•執行上面的四步,push到遠程
•創建一個client客戶端新項目
•導入依賴
•編寫bootstrap配置
#系統級別的配置 比用戶級別設置先執行 spring: cloud: config: profile: dev #生產環境 name: config-client #需要從git上讀取的資源名稱,不需要後綴 label: master uri: http://localhost:3344 #連接服務端的地址 #相當於http://localhost:3344/master/config-client-dev/master
編寫application配置
#用戶級別的設置 spring: application: name: springcloud-config-client-3355
•編寫啟動類
•編寫Controller
@RestController public class ConfigClientController { @Value("${spring.application.name}") private String applicationName; @Value("${eureka.client.service-url.defaultZone}") private String eurekaServer; @Value("${server.port}") private String port; @RequestMapping("/config") //請求這個路徑獲取config-client配置裡面的信息 public String getConfig(){ return "applicationName"+applicationName+ "eurekaServer"+eurekaServer+ "port"+port; } }
[火星人 ] SpringCloud-Config分佈式配置代碼示例已經有210次圍觀