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