在 pom.xml添加上述依賴:git
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency> <!-- 這裏的版本是經過 spring cloud 大版原本獲取的 -->
複製代碼
配置 application.yml 文件:github
eureka:
client:
service-url:
defaultZone: http://localhost:8000/eureka/
spring:
application:
name: config
cloud:
config:
server:
# 這裏採用的是git的配置中心,也能夠使用是svn的
git:
uri: https://github.com/WengBerg/studyspringcloud-config-repo.git
username:
password:
# 本地保存地址
basedir: E:/ideaIU-2018.2.4.win/workspace/studyspringcloud/config/basedir
server:
port: 8899
複製代碼
@SpringBootApplication
@EnableDiscoveryClient // 註冊到eureka
@EnableConfigServer // 配置中心
public class ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigApplication.class, args);
}
}
複製代碼
在 pom.xml添加上述依賴:web
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-client</artifactId>
</dependency> <!-- 這裏的版本是經過 spring cloud 大版原本獲取的 -->
複製代碼
配置 bootstrap.yml 文件:spring
這裏採用 bootstrap 的方式是由於須要一開始就去配置中心獲取配置文件bootstrap
eureka:
client:
service-url:
defaultZone: http://127.0.0.1:8000/eureka/
spring:
application:
name: order
cloud:
config:
discovery:
enabled: true
service-id: config # 這個是配置中心的應用名,經過 eureka 去找
# 在這裏部分環境參數我未填寫,有須要的自行填寫
server:
port: 9500
複製代碼
在 pom.xml 中添加依賴:bash
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency> <!-- 這裏注意 spring cloud 的大版本,有部分版本有bug。還有須要注意 spring cloud 的版本須要和 spring boot 的版本相對應 -->
複製代碼
修改 application.yml 配置:app
eureka:
client:
service-url:
defaultZone: http://localhost:8000/eureka/
spring:
rabbitmq: # 這裏使用的是 rabbitmq,用於通知更新
host: 127.0.0.1
port: 5672
username: guest
password: guest
application:
name: config
cloud:
config:
server:
# 這裏採用的是git的配置中心,也能夠使用是svn的
git:
uri: https://github.com/WengBerg/studyspringcloud-config-repo.git
username:
password:
# 本地保存地址
basedir: E:/ideaIU-2018.2.4.win/workspace/studyspringcloud/config/basedir
server:
port: 8899
management: # 這裏是將映射暴露出來。
# 使能夠訪問http://[配置中心域名或IP]:[端口號]/actuator/bus-refresh 刷新配置
endpoints:
web:
exposure:
include: "*"
複製代碼
在 pom.xml 中添加依賴:ide
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-bus-amqp</artifactId>
</dependency> <!-- 這裏注意 spring cloud 的大版本,有部分版本有bug。還有須要注意 spring cloud 的版本須要和 spring boot 的版本相對應 -->
複製代碼
在代碼中有在配置文件中獲取值的地方須要添加 @RefreshScope 註解。舉例:svn
@RestController
@RefreshScope
public class ConfigTestController {
@Value("${person.name}")
private String name;
@GetMapping("configTest")
public String configTest() {
return name;
}
}
複製代碼
如此便能刷新配置ui
但能不能更加人性化呢?好比 push 的就自動更新,實際上是能夠作到的。下面就來說一下實現方式:
如何設置 Webhooks ? 這裏我是用的 github 中的 Webhooks
上面就是我設置的 Webhooks,下面添加的依賴就是用來實現 Webhooks。而且在這裏我一個映射軟件來映射到內網。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-monitor</artifactId>
</dependency>
複製代碼