我有两个春季启动项目,项目A和项目B,每个项目都有自己的application.properties
。
单独运行项目时,application.properties
的值会正确注入。但是当我使用Project B中的一个作为项目A中的依赖项时,B的application.properties
中定义的默认值没有被注入,我必须在.properties
文件中再次定义相同的属性A是多余的。
我该如何避免这种情况?我想要注入B的属性文件中的默认值,我只想在我想要覆盖默认值时定义B的属性。对不起我的英文
答案 0 :(得分:1)
AFAIK,没有开箱即用的解决方案。我会推荐两种解决方案,你可以选择一种更适合你的方法:
取出所有项目的所有常用属性,并将它们放在一个单独的属性文件中,与@PropertySource一起使用。
使用spring cloud config存储公共(或所有)属性。您还可以在那里使用一些自定义逻辑来在多个属性文件中选择正确的属性。
答案 1 :(得分:0)
如果没有提供代码,很难说。我想你可以尝试为项目A应用程序使用多个.properties
文件,如下所示:
@PropertySources({
@PropertySource(name = "propsA", value = "classpath:propsA.properties"),
@PropertySource(name = "propsB", value = "classpath:propsB.properties")
})
public class ApplicationA {