下面是 “spring-cloud入门之spring-cloud-config(配置中心)” 的完整攻略。
简介
Spring Cloud Config 是一个分布式配置管理工具,它可以让您在不同的应用程序和服务之间共享和管理应用程序的配置。它可以轻松地管理不同环境下的配置(如开发、测试、生产环境)。
Spring Cloud Config 可以使用多种后端存储来存储配置,包括本地文件系统、Git 存储库等。
在本文中,我们将介绍如何在 Spring Boot 应用程序中使用 Spring Cloud Config 来集中管理配置。
准备工作
使用 Spring Cloud Config,需要准备如下环境:
- JDK 1.8 或更高版本;
- Maven 3.2 或更高版本;
- Git;
- 一个本地文件系统或一个远程 Git 存储库。
操作步骤
1. 创建一个 Spring Boot 应用程序
在开始之前,请确保已按照准备工作中的要求进行了配置。
使用 Spring Initializr 创建一个新的 Spring Boot 应用程序。项目依赖中添加 spring-cloud-config-server 和 spring-boot-starter-web 两个依赖项。
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
2. 添加配置
在 application.properties 文件中添加以下配置:
server.port=8888
spring.cloud.config.server.git.uri=<git-repo-url>
spring.cloud.config.server.git.username=<git-username>
spring.cloud.config.server.git.password=<git-password>
spring.cloud.config.server.git.search-paths=config-repo
其中,
- server.port:配置服务器端口;
- spring.cloud.config.server.git.uri:Git 存储库的 URL;
- spring.cloud.config.server.git.username:Git 存储库的用户名;
- spring.cloud.config.server.git.password:Git 存储库的密码;
- spring.cloud.config.server.git.search-paths:在存储库中的搜索路径。
3. 创建 Git 存储库并添加配置文件
在 Git 存储库中创建一个名为 config-repo 的目录。在这个目录中添加一个名为 application.properties 的文件,并设置一些属性值:
message=Hello World!
4. 启动服务
在项目根目录下执行以下命令:
mvn spring-boot:run
5. 测试
打开 Web 浏览器,输入 http://localhost:8888/application/default
。您将看到一个 JSON 字符串,其中包含从 Git 存储库中读取的属性值。
{
"name": "application",
"profiles": [
"default"
],
"label": null,
"version": null,
"state": null,
"propertySources": [
{
"name": "<git-repo-url>/config-repo/application.properties",
"source": {
"message": "Hello World!"
}
}
]
}
您还可以使用 curl 命令从命令行检索配置:
curl http://localhost:8888/application/default
输出:
{
"name" : "application",
"profiles" : [ "default" ],
"label" : null,
"version" : "76ed25889e3b0cd23d3eba60a3f30907b53c4385",
"state" : null,
"propertySources" : [ {
"name" : "https://github.com/baeldung/spring-cloud-config-repo/config-repo/application.properties",
"source" : {
"message" : "Hello World!"
}
} ]
}
示例说明
示例 1:多环境配置
可以使用 Spring Cloud Config 管理不同环境中的配置文件。例如,在 Git 存储库中添加一个名为 application-dev.properties 的文件并设置一些属性值:
message=Hello World! - Dev
然后,在命令行中使用以下命令启动应用程序:
mvn spring-boot:run -Dspring.profiles.active=dev
现在,您可以使用 curl 命令检索 dev 环境的配置:
curl http://localhost:8888/application/dev
输出:
{
"name": "application",
"profiles": [
"dev",
"default"
],
"label": null,
"version": "7d2336d2368477c7fd3a933df148e94d426c4bbb",
"state": null,
"propertySources": [
{
"name": "<git-repo-url>/config-repo/application-dev.properties",
"source": {
"message": "Hello World! - Dev"
}
},
{
"name": "<git-repo-url>/config-repo/application.properties",
"source": {
"message": "Hello World!"
}
}
]
}
示例 2:加密配置
Spring Cloud Config 还支持加密配置。例如,在 Git 存储库中添加一个名为 application.yml 的文件并设置一些属性值:
secret:
password: '{cipher}AgDp7RDbFtXUbg5wvxiF+6xoq+aNeRaUd1HfB5nPlfo='
这里的 {cipher}
表示 password 属性是加密的。现在,我们需要一个密钥来解密配置。可以使用以下命令生成一个密钥:
keytool -genkeypair -alias mytestkey -keyalg RSA \
-dname "CN=Web Server,OU=Unit,O=Organization,L=City,S=State,C=US" \
-keypass changeme -keystore server.jks -storepass letmein
然后,我们需要在 bootstrap.yml 中添加以下配置:
encrypt:
key-store:
location: classpath:/server.jks
password: letmein
alias: mytestkey
store-password: letmein
现在,可以使用 curl 命令检查加密的密码:
curl http://localhost:8888/application/default
输出:
{
"name": "application",
"profiles": [
"default"
],
"label": null,
"version": "7d2336d2368477c7fd3a933df148e94d426c4bbb",
"state": null,
"propertySources": [
{
"name": "<git-repo-url>/config-repo/application.properties",
"source": {
"message": "Hello World!"
}
},
{
"name": "<git-repo-url>/config-repo/application.yml",
"source": {
"secret.password": "hello"
}
}
]
}
以上就是 “spring-cloud入门之spring-cloud-config(配置中心)” 的完整攻略,希望对您有帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:spring-cloud入门之spring-cloud-config(配置中心) - Python技术站