Spring Cloud Config
Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。
服务说明
请参考官网:http://cloud.spring.io/spring-cloud-config/#quick-start
应用说明
使用框架
- SpringBoot 2.0.3
- SpringCloud Finchley.RELEASE
使用jar包
- spring-cloud-starter-netflix-eureka-client
- spring-boot-starter-web
- spring-cloud-config-server
- spring-cloud-starter-config
- spring-boot-configuration-processor
环境搭建
config server
pom文件添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 系统注册与监测服务 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 系统配置管理中心服务端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
启动文件
添加注解 @EnableDiscoveryClient 和 @EnableConfigServer
配置文件
server:
port: 8771
eureka:
client:
registerWithEureka: true #否注册自身到eureka服务器
fetchRegistry: true #是否从eureka服务器获取注册信息
serviceUrl:
defaultZone: http://localhost:8761/eureka/ #虽然上面两个开关都打开,但这里只配置了一个节点,没有集群支持,上述开关无效。
spring:
application:
name: cloud-config
# profiles:
# active: subversion #使用SVN作为配置中心时使用
cloud:
config:
enabled: true
discovery:
enabled: true #开启config服务发现,既开启集群环境,此开关开启时,client必须使用服务名链接config server。
server:
git:
uri: https://github.com/xiaoming302/cloud_properties
searchPaths: '{application}' #使用应用名称作为搜索路径
label: master
# svn:
# uri: svn://localhost/demo/spring_cloud/parent/trunk/properties/
# username: 你的SVN账号
# password: 你的SVN密码
# search-paths: '{application}'
# default-label: trunk
被注释掉的配置时用在SVN作为仓库是使用的配置,与Git配置不可同时使用
注意:
- 使用应用名称作为搜索路径时需要用单引号括起来,否则yml文件无法正确解析。
- git默认label为:master 而SVN默认label为:trunk,配置时请注意区分。
config client
pom文件添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 系统注册与监测服务 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<!-- 系统配置管理中心 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-config</artifactId>
</dependency>
<!-- spring 配置读取(@ConfigurationProperties(prefix = "test")) -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
启动文件修改
启动类只需要开启eureka注册即可:@EnableDiscoveryClient
配置文件
server:
port: 8781
spring:
application:
name: server-user
cloud:
config:
discovery:
enabled: true
service-id: cloud-config
profile: dev
label: master
eureka:
client:
registerWithEureka: true
fetchRegistry: true
serviceUrl:
defaultZone: http://localhost:8761/eureka/
具体的配置使用就不在这里说明了,可以使用@Value注解自动注入,也可以使用配置类的方式使用
代码样例
- server参考:https://gitee.com/xiaoxming/cloud_project/tree/master/cloud-config
- client参考:https://gitee.com/xiaoxming/cloud_project/tree/master/server-user