把原先得設定檔改成依靠 Config-Server 提供的
增加 spring-cloud-starter-config 跟 spring-boot-starter-actuator
build.gradle
dependencies {
compile('org.springframework.cloud:spring-cloud-starter-config')
compile('org.springframework.boot:spring-boot-starter-actuator')
compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-web')
runtime('com.h2database:h2')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
記得更新一下依賴
把原本的application.properties重新命名為bootstrap.properties並改成以下內容
bootstrap.properties
spring.application.name=reservation-service
spring.cloud.config.uri=http://localhost:8888
增加個控制器可以顯示從Condif-Server得到的資料
@RefreshScope
@RestController
class MessageRestControler{
@Value("${message}")
private String message;
@RequestMapping("/message")
String message(){
return this.message;
}
}
只要啟動後可以在 http://localhost:8000/message 取得 HELLO world! 的資料
注意 Port 變了喔,因為一開始就從 Config-Server 取得 reservation-service.properties 的內容,也取得了 message=HELLO world! 的內容來呈現。
加上 @RefreshScope 用意是當設定檔有變更時,你可以透過 URL 來觸發更新
curl -X POST 'http://localhost:8000/refresh'
但是要怎麼隨時保持同步請看另外一篇研究
使用 SpringCloud 同步所有節點設定