SpringCloud 配置檔案交給 git 管理
阿新 • • 發佈:2018-12-20
- 在
gitHub
中建立專案並存放配置檔案 - 搭建一個
註冊中心
- 搭建一個
服務
與git
倉庫進行連線 - 搭建一個
服務
通過倉庫連線服務呼叫配置檔案
架構圖
在
gitHub
中建立專案並存放配置檔案
搭建一個
註冊中心
:: 服務註冊中的地址
eureka.client.serviceUrl.defaultZone=http://localhost:7070/eureka/
搭建一個
服務
與git
倉庫進行連線在
pom
檔案中新增依賴
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-config-server</artifactId> </dependency>
新增
application.yaml
配置檔案
server:
port: 8000
spring:
application:
name: spring-cloud-config-server
cloud:
config:
server:
git:
uri: https://github.com/jiangruyi/SpringCloud.git
search-paths: spring-cloud-config-core
username: [email protected]
password: xxx
eureka:
client:
service-url:
defaultZone: http://localhost:7070/eureka/
編寫SpringBoot啟動類
@EnableConfigServer @EnableDiscoveryClient @SpringBootApplication public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class).web(true).run(args); } }
搭建一個
服務
通過倉庫連線服務呼叫配置檔案新增
pom
依賴
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
編寫 bootstrap.yaml 配置檔案
spring:
cloud:
config:
name: application
profile: dev
uri: http://localhost:8000/
label: master
server:
port: 9000
spring.cloud.config.uri
:: 與git連線的服務
地址編寫基本配置檔案
application.yaml
spring:
application:
name: config-client-git
server:
port: 9000
eureka:
client:
service-url:
defaultZone: http://localhost:7070/eureka/
編寫 SpringBoot 啟動類讀取git上的配置檔案
@EnableDiscoveryClient
@SpringBootApplication
@RestController
public class Application {
@Value("${com.znsd.config}")
private String gitValue;
public void setGitValue(String gitValue) {
this.gitValue = gitValue;
}
@GetMapping("hello")
public String hello () {
return gitValue;
}
public static void main(String[] args) {
new SpringApplicationBuilder(Application.class).web(true).run(args);
}
}
配置熱部署
在呼叫配置服務端 pom 檔案中新增依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在要動態熱部署的配置類中新增:
@RefreshScope
註解以
POST
方式訪問URL
http://localhost:9000/refresh
重新整理配置注意:
返回訊息中包含:
Full authentication is required to access this resource.
解決方案:
- 將安全認證關掉:
management.security.enabled=false
- 配置一個安全認證