【发布时间】:2017-07-14 18:11:59
【问题描述】:
我在stackoverflow上找不到这个问题的答案,所以我在这里问,所以我可以得到一些想法。
我有一个 Spring Boot 应用程序,已在 Tomcat 8 上部署为 war 包。我遵循了这个指南 Create a deployable war file,它似乎工作得很好。
但是我目前遇到的问题是能够将配置外部化,以便我可以将配置作为 puppet 模板进行管理。
在我所拥有的项目中,
src/main/resources
-- config/application.yml
-- config/application.dev.yml
-- config/application.prod.yml
-- logback-spring.yml
那么我怎么可能在外部加载 config/application.dev.yml 和 config/application.prod.yml 并仍然保留 config/application.yml ? (包含默认属性,包括spring.application.name)
我已经读到配置是按这个顺序加载的,
- 当前目录的 /config 子目录。
- 当前目录
- 一个类路径 /config 包
- 类路径根
因此我尝试从/opt/apache-tomcat/lib 加载配置文件无济于事。
到目前为止的效果
通过export CATALINA_OPTS="-Dspring.config.location=/opt/apache-tomcat/lib/application.dev.yml"加载
然而我想知道的是,
- 找出通过
/opt/apache-tomcat/lib类路径加载不起作用的原因。 - 有没有更好的方法来实现这一点?
【问题讨论】:
标签: spring-boot configuration war tomcat8