SpringCloud配置中心
- 配置中心服务端
- pom.xml
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
</dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-eureka</artifactId>
</dependency>
2. bootstrap.yml配置文件添加(必须是bootstrap.yml,因为这个配置文件的加载级别是最高的会优先加载)
server:
port: 8003
spring:
application:
name: spring-cloud-config-server
profiles:
active: dev
cloud:
config:
#name: king,application,spring-cloud-config-server #搜索这个name或name+{profile}.yml/properties配置文件
#profile: dev
#label: master
server:
git:
uri: https://gitee.com/King_Wong/spring-cloud-config/
#搜索uri子目录指定路径下文件,多个可以逗号隔开,{profile}为占位符,如果没有此配置则搜索的是根目录下配置文件
search-paths: '{profile}'
# 对于使用git,svn做为后端配置,从远程库获取配置文件,需要存储到本地文件
basedir: /tmp/spring-cloud-config
# 配置中心通过git从远程git库,有时本地的拷贝被污染,这时配置中心无法从远程库更新本地配置,设置force-pull=true,则强制从远程库中更新本地库
force-pull: true
username:
password:
#重试机制
fail-fast: true
eureka:
instance:
instance-id: eureka-config8003.com
client:
service-url:
defaultZone: http://king8001.com:8001/eureka/ #向服务中心http://localhost:8001/eureka/注册
info:
name: 配置中心服务端
-
配置中心客户端调用
- bootstrap.yml配置文件添加(必须是bootstrap.yml,因为这个配置文件的加载级别是最高的会优先加载)
server:
port: 8005
spring:
application:
name: spring-cloud-config-client
cloud:
config:
profile: dev
label: master
#搜索git上面的{profile}目录下的name或name+{profile}.yml/properties,如这里配置会搜索dev/king.yml,king.properties,或king-dev.yml,king-dev.properties....
name: king,spring-cloud-config-server
uri: http://eureka-config8003.com:8003
enabled: true
2. 在程序中获取配置值
@RestController
@RefreshScope
public class ConfigController {
@Value("${name}")
private String name;
@Value("${config.name}")
private String king;
@RequestMapping("/config")
public String config(){
return king+":"+name;
}
}