我有一个使用注释配置的Spring Boot应用程序。我有application.properties和application- {profile} .properties文件已包含数据。问题是我现在想在Tomcat 6服务器上定义WAR外部位置,我可以在其中放置优先级的配置文件。也就是说,我在这些属性文件中放置的任何设置都应该胜过application.properties或application- {profile} .properties中的任何值。
如何以最简单的方式实现这一目标?
我已经尝试添加@PropertySources但是在属性文件顺序中具有较低的优先级,因此这不是一个可能的解决方案。我可以轻松更改属性文件加载顺序吗?
无法将环境变量添加到服务器,因为这可能会影响其他已部署的应用程序。 WAR必须是自包含的并提供它所需的一切(除了这个外部属性覆盖文件)。
答案 0 :(得分:1)
您可以配置spring.config.location
as described in the doc,或者如果您希望无论如何都可以实施EnvironmentPostProcessor
。
此university session at Devoxx中有一个示例we showcase how to read a file from the home directory,并在命令行属性后添加它。你可以做同样的事情并按照你想要的方式订购它们。
示例应用是available here,如果您想尝试一下。