Spring Cloud Config 使用总结
https://github.com/ChangMuChen/Spring-Boot
一、介绍
Spring Cloud Config
Spring Cloud Config为分布式系统中的外部化配置提供服务器和客户端支持。使用Config Server,您可以在所有环境中管理应用程序的外部属性。客户端和服务器上的概念映射与Spring Environment和PropertySource抽象,因此它们非常适合Spring应用程序,但可以与任何语言运行的任何应用程序一起使用。当应用程序通过部署管道从开发到测试并进入生产时,您可以管理这些环境之间的配置,并确保应用程序具有迁移时需要运行的所有内容。服务器存储后端的默认实现使用git,因此它可以轻松支持配置环境的标签版本,以及可用于管理内容的各种工具。添加替代实现并使用Spring配置插入它们很容易。
Spring Cloud Config Server功能
- 用于外部配置的HTTP,基于资源的API(名称 值对或等效的YAML内容)
- 加密和解密属性值(对称或非对称)
- 使用可轻松嵌入Spring Boot应用程序
- 可以轻松的结合Eureka实现高可用
- 可以轻松的结合Spring Cloud Bus实现自动化持续集成
Config Client功能(适用于Spring应用程序)
- 绑定到Config Server并Environment使用远程属性源初始化Spring
- 加密和解密属性值(对称或非对称)
- 结合Eureka实现服务发现
二、基础使用
1. 搭建服务端
Step1. 新建Spring Boot项目 configserver
Step2. 引入主要依赖 spring-cloud-config-server
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
Step3. 引入 spring-boot-starter-web
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
Step4. 主程序添加注释 @EnableConfigServer
@SpringBootApplication
@EnableConfigServer
public class ConfigserverApplication {
public static void main(String[] args) {
SpringApplication.run(ConfigserverApplication.class, args);
}
}
Step5. 设置属性
这里使用
.properties
的方式进行配置。你可以自行更换为同等效果的.yml
方式。配置信息需要放在bootstrap.properties
中。
1)Git方式存储配置文件示例
#配置文件存放在Git的情况
spring.cloud.config.server.git.uri=http://172.16.50.98:9999/changdaohang/demo_configs.git
spring.cloud.config.label=master
spring.cloud.config.server.git.search-paths=/**
spring.cloud.config.server.git.username=username
spring.cloud.config.server.git.password=password
2)本地存储配置文件
#配置文件存放在本地的情况
#注意:文件夹要有访问权限
spring.profiles.active=native
spring.cloud.config.server.native.search-locations=C:/IdeaProjets/demo_configs/
Step6. 启动
备注
我们可以直接通过restful api 的方式进行访问配置。路由如下:
#映射说明如下 #/{application}/{profile}[/{label}] #/{application}-{profile}.yml #/{label}/{application}-{profile}.yml #/{application}-{profile}.properties #/{label}/{application}-{profile}.properties
例如:http://localhost:8080/testapp/dev 或 http://localhost:8080/testapp-dev.properties
对应的配置为/t