java - Spring Cloud 配置匹配配置文件
问题描述
我的 git 存储库中有一个应用程序文件的层次结构,如下所示:
URI:https ://bitbucket.org/repositorios-company/configuration-files
目录:
-authorization-service
----application.yml
----application-development.yml
----application-uat.yml
----application-production.yml
-cpo-executor
----application.yml
----application-development.yml
----application-uat.yml
----application-production.yml
在配置项目 yml 文件中:
server:
port: 8888
spring:
application:
name: config-server
cloud:
config:
server:
git:
username: ######
....
uri: https://bitbucket.org/repositorios-company/cup-configuration-files
searchPaths: '{application}'
问题:
- 当我尝试通过 url http://localhost:8888/authorization-service/development 访问开发文件时,spring会加载两个文件,而不仅仅是我预期的一个:
2021-01-13 10:34:40.549 INFO 141562 --- [nio-8888-exec-1] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-3531515016986363333/authorization-service/application.yml
2021-01-13 10:34:48.950 INFO 141562 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-3531515016986363333/authorization-service/application-development.yml
- 当客户端应用程序使用以下配置尝试访问相应的配置文件时,spring 只带上 application.yml 文件,而不带上配置文件对应的文件:
客户端 yml:
spring.application.name=authorization-service
spring.profiles.active=development
spring.cloud.config.uri=http://localhost:8888
应用启动后,spring cloud config log会显示默认的application.yml:
2021-01-13 11:09:11.346 INFO 144899 --- [nio-8888-exec-2] o.s.c.c.s.e.NativeEnvironmentRepository : Adding property source: file:/tmp/config-repo-1131390371944673193/authorization-service/application.yml
编辑:我检查了值是否在运行时发生了变化,以及它是否从 application-development.yml 中获取了值,但没有。
有谁知道我怎样才能在这两种情况下只带一个配置文件?
解决方案
当您直接访问您的配置服务器时,它将显示这两个文件,这是正常的,基本配置文件和覆盖基本配置文件的第二个文件,这是正常行为。
当您的客户端连接到您的配置服务器时,它将仅获取一个文件,该文件将混合在您的配置服务器中分配的两个属性文件配置。
以下帖子描述了位于资源文件夹中的 bootstrap.yml 文件的使用,该文件允许在从配置服务器获取数据时激活配置文件。
在 Spring Boot 中将属性放在 application.yml 或 bootstrap.yml 上有什么区别?
推荐阅读
- amazon-web-services - 内部负载均衡器的自动缩放组和 IP 目标类型
- javascript - 从 Firebase 数据库中的嵌套节点查找每个代理的总量
- c++ - 用于精确浮点数打印的常用函数
- highcharts - 是否可以使用错误线同步图表?
- ios - Flutter IOS Firebase Crashlytics 致命异常:NSInternalInconsistencyException
- django - 如何在 django 的单个查询中获取所有以前可区分对象的最新版本?
- python - 如何在不使用 tkinter 的情况下在 python 中打开保存文件对话框
- python - 如何从隐藏的控制台 python 脚本运行 python 控制台脚本?
- android - 将 ConstraintLayout 放置在 NestedScrollView 中时如何使用整个空间?
- python - 数值 Python:用布尔条件求解 BVP?