我有一个Spring应用程序,我希望能够在配置之间切换,具体取决于我是在调试服务器还是服务器在生产中运行。 (配置的差异就像数据库位置一样。)
理想情况下,我想在启动时将命令行参数传递给我的Spring应用程序并设置应用程序配置。
我有两个单独的application.properties文件,一个带有生产值,另一个带有调试值。我怎样才能在他们两个之间切换?
答案 0 :(得分:45)
您可以拥有3个属性文件,application-dev.properties
,application-prod.properties
和application.properties
。您可以在 dev 属性文件中指定所有开发属性,并在 prod 文件中指定生产cionfiguration属性
并在application.properties
文件中指定个人资料,如下所示
spring.profiles.active=dev
或者您可以在命令行中使用-Dprofile=
参数选择/覆盖配置文件。
答案 1 :(得分:3)
Spring配置文件似乎还有很长的路要走。您可以使用-Dprofile =之类的东西启动应用程序。看看this example。
编辑:在重新阅读你的问题之后,我得出结论,你可能真的想要一些更基本的东西:把你的数据库属性放在外面。根据您的应用程序,您可以使用属性配置器的@Value。看一下spring文档。