我有一个springboot项目,它依赖于第三方sdk库,其中包含一个yaml文件和一些googlecloud url。
我想覆盖yaml中的那些值,这对我的大多数项目都有效,但是由于某些原因,这个特定的依赖库没有成功。
依赖项代码
@ConfigurationProperties("google")
public class GoogleProperties {
String url;
..
..
}
yaml文件应用程序-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中的重写值。
1条答案
按热度按时间ttvkxqim1#
免责声明:
a是没有意思复制你的问题,这只是一个建议。
注意没有
@Configuration
在GoogleProperties
.你要么
@Configuration
在properties类上:(在这种情况下不可能)或add@EnableConfigurationProperties(GoogleProperties.class)
在要使用属性的类的顶部。e、 g:如果你想在所有的应用程序中使用它们,你的主类。
如文件所述,您还可以使用:
@ConfigurationPropertiesScan({ "com.google.SDK", "org.acme.another" })
在你的主要课程或任何@Configuration
在你需要道具的地方上课。注意:正如这里所解释的,事实上,从SpringBoot2.2开始,我们不再需要更多了
@Configuration
或者@EnableConfigurationProperties
因为配置属性功能已过时。