您可以覆盖库的 Spring 属性占位符吗?



我们正在努力将我们的应用程序迁移到只使用Spring-Boot应用程序。属性文件。我们以前的做法是,每个库/依赖项都将它们的属性存储在一个专门的属性文件中,比如res/environment/some-library-override.properties。然后使用@Value("$some-library-{PROPERTY_NAME}")在库中检索这些值。

然而,由于将所有这些覆盖属性移动到专用的应用程序。属性文件,它不再解析属性,我们得到错误,如java.lang.NumberFormatException: For input string: "$some-library-{PROPERTY_NAME}".

我认为这是因为它仍然期望属性在专用属性文件中。

是否有一个不涉及修改库/依赖的解决方案?是否可以让它忽略前缀,只在应用程序中查找PROPERTY_NAME。属性文件吗?

如果您已经声明了属性变量(如property.name=XXXX)或添加了环境变量(如PROPERTY_NAME=XXXX)

你需要这样使用

@Value("some-library-${property.name}")
// will inject value "some-library" + "XXXX"

最新更新