【发布时间】:2016-04-17 04:37:10
【问题描述】:
我有一个带有注释而不是 context.xml 的 spring-boot 应用程序。
在我的 src/main/resources 文件夹中,我有:application-dev.properties 和 application-test.properties。
完美适用于不同的配置文件(使用-Dspring.profiles.active=dev 等 VM 选项运行时)
现在我需要使用/opt/software/Tomcat8/conf/app.properties 中的文件将这些属性外部化
有些道具会相互覆盖,有些则不会。
在 Tomcat 配置 context.xml 中我说:
<Environment name="app.properties"
value="file:///opt/software/Tomcat8/conf/app.properties"
type="java.lang.String" override="false"/>
如何在我的应用程序中通过 JNDI 使用它,在 Spring-bot 应用程序类中配置没有 XML 但注释的应用程序?
我需要它优先于内部 jar 属性根据 Link to Spring-boot.doc
【问题讨论】:
-
将JNDI中的属性重命名为
SPRING_CONFIG_LOCATION或spring.config.location。 -
谢谢!但不幸的是它对我不起作用......属性现在存在于上下文环境中,但外部文件道具不优于内部 jar 道具。
-
向我们展示您配置的相关部分
-
可能是(根据 [link]docs.spring.io/spring-boot/docs/current/reference/html/…)硬命名的 props 文件的优先级低于特定于配置文件的内部 props。因此,现在我正在尝试编写我的 SPRING_CONFIG_LOCATION 属性的值,例如 application-${profile}.properties 以实现上述文档中的第 7 行..
-
ЕЕЕ!明白了!如果 spring_config_loaction 不是文件而是目录,并且 propsFile 名称是“application-dev.properties”,并且配置文件是“dev” Spring 处理来自外部文件的 props!谢谢大家!
标签: spring-boot config app-config spring-annotations