spring - 覆盖依赖 jar 文件中的 spring-boot 属性
问题描述
我有一个 Spring Boot 项目,它依赖于第 3 方 SDK 库之一,其中包含一个带有一些谷歌云 URL 的 YAML 文件。
我想在我的 YAML 中覆盖这些值,这适用于我的大部分项目,但由于某种原因,这个特殊的依赖库没有运气。
依赖代码
@ConfigurationProperties("google")
public class GoogleProperties {
String url;
..
..
}
Yaml 文件application-google-prod.yaml
google:
url: some url.
假设这是在一个名为google-client-sdk-1.0.0的 jar 中
我的代码
Yaml 文件application-myapp-prod.yaml
spring:
profiles:
include: google-prod
google:
url: OVERRIDE url.
所以我期望在调用 lib 中的代码时应该使用 OVERRIDE url,但它会继续使用 jar 文件的 yaml 中的一些 url。
任何指针?
编辑
SDK 包含另一个类类,在 SDK 中具有以下注解
@Configuation
@PropertySource({"classpath:application-google-prod.yaml})
我认为这迫使 SDK 从特定 YAML 中选择值,而忽略我的应用程序中 YAML 中的覆盖值。
解决方案
免责声明:
A 没有办法重现您的问题,这只是一个建议。
注意没有@Configuration
on GoogleProperties
。
您必须添加@Configuration
属性类:(在这种情况下不可能)或添加@EnableConfigurationProperties(GoogleProperties.class)
到要使用属性的类的顶部。
例如:如果你想在所有应用程序中使用它们,你的主类。
如文档中所述,您还可以在主类或需要这些道具的
@ConfigurationPropertiesScan({ "com.google.SDK", "org.acme.another" })
任何类之上使用:@Configuration
注意:正如这里所解释的,从 spring-boot 2.2 开始,我们不再需要配置属性功能@Configuration
或@EnableConfigurationProperties
配置属性功能已经过时了。
推荐阅读
- sql - 将 .xls/.xlsx Excel 文件导入 H2 数据库
- xmlhttprequest - 如何发送 XMLHttpRequest
- java - 如何更改打印的方向?
- c# - 以编程方式设置超链接
- ruby-on-rails - 如何在 Haml 中为“content_for”使用“if”条件
- c# - 如何将任何 DataGridTextColumn 传递给将切换 DataGridTextColumn 的可见性的单个命令?
- python - tkinter exe 打包在一个文件夹中时看起来很旧
- tensorflow - tensorflow 1x 为什么将会话运行优化器保存为变量?
- sql - 为什么我的 Oracle 分层查询仅在一级后停止
- google-sheets - 是否有条件格式自定义公式,我可以在其中检查两个或多个单元格(来自范围)是否总和为一个值?