重写依赖jar文件中的spring启动属性

qpgpyjmq  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(319)

我有一个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中的重写值。

ttvkxqim

ttvkxqim1#

免责声明:

a是没有意思复制你的问题,这只是一个建议。
注意没有 @ConfigurationGoogleProperties .
你要么 @Configuration 在properties类上:(在这种情况下不可能)或add @EnableConfigurationProperties(GoogleProperties.class) 在要使用属性的类的顶部。
e、 g:如果你想在所有的应用程序中使用它们,你的主类。
如文件所述,您还可以使用: @ConfigurationPropertiesScan({ "com.google.SDK", "org.acme.another" }) 在你的主要课程或任何 @Configuration 在你需要道具的地方上课。
注意:正如这里所解释的,事实上,从SpringBoot2.2开始,我们不再需要更多了 @Configuration 或者 @EnableConfigurationProperties 因为配置属性功能已过时。

相关问题