我正在开发一个弹簧启动应用程序和启动器。我希望启动器能够保存公共属性和代码。
在我的首发中,我有一个application-dev.properties文件。我在启动器中定义了一个@Profile(" dev")。
当我使用dev配置文件启动我的应用程序时,我会看到启动器中的属性,这很棒。当我将application-dev.properties文件添加到我的应用程序时,什么不是很好,根本不再阅读启动器中的文件。这意味着我无法弄清楚如何将普通的" dev"那里的个人资料属性。
基于external configuration文档,我认为这样可行,因为将读取启动文件,然后读取应用程序文件。
Spring Boot使用一个非常特殊的PropertySource命令,旨在允许合理地覆盖值。按以下顺序考虑属性:
SNIP
打包jar之外的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
打包在jar中的特定于配置文件的应用程序属性(application- {profile} .properties和YAML变体)
有什么建议吗?
答案 0 :(得分:2)
将application-dev.properties放入启动器的src / main / resources / config文件夹中,并将应用程序的application-dev.properties放入src / main / resources中,这有助于解决此问题。
答案 1 :(得分:0)
我认为将application-dev.properties
添加到初学者并不是一个好主意。问题是您只能添加一次文件。好吧,您可以将文件放入文件夹config
。这意味着您最多可以添加两次文件。不再。如果您决定使用第二个启动器怎么办?你把application-dev.properties
放在哪里?
我认为application*.properties
应仅添加到最终用户产品中。对于便携式模块,我建议使用
- @Configuration类上的@PropertySource注释。
醇>
@Configuration
@PropertySource("classpath:/my/starter/dev.properties")
@Profile("dev")
public class MyConf {}