Spring Boot 1.4:在Tomcat中部署应用程序时设置默认配置文件
我有一个SpringBoot1.4应用程序,它有一个基于YAML的配置文件。配置文件指定默认配置文件:Spring Boot 1.4:在Tomcat中部署应用程序时设置默认配置文件,spring,spring-boot,tomcat7,Spring,Spring Boot,Tomcat7,我有一个SpringBoot1.4应用程序,它有一个基于YAML的配置文件。配置文件指定默认配置文件:prod spring: profiles.active: prod 当我使用Maven生成war并部署到Tomcat7时,默认配置文件没有设置。Tomcat日志: No active profile set, falling back to default profiles: default 为了在Tomcat中部署的应用程序中设置默认配置文件,我可以向Tomcat传递一个系统属性,如
prod
spring:
profiles.active: prod
当我使用Maven生成war并部署到Tomcat7时,默认配置文件没有设置。Tomcat日志:
No active profile set, falling back to default profiles: default
为了在Tomcat中部署的应用程序中设置默认配置文件,我可以向Tomcat传递一个系统属性,如下所示:
-Dspring.profiles.active=prod
这是可行的,但我想使用Spring引导属性,而不是系统属性来设置默认配置文件。
在Tomcat中部署应用程序时,是否有忽略默认yaml属性文件的原因?只需将您的配置文件重命名为默认,并为开发添加一个不同的名称,如下所示:
spring:
profiles: development
devtools:
restart:
enabled: false
thymeleaf:
mode: HTML
cache: false
http:
multipart:
max-file-size: 3Mb
max-request-size: 4Mb
logging:
level:
org.apache: WARN
org.apache.catalina.webresources.Cache: ERROR
org.hibernate: WARN
org.hibernate.SQL: WARN
org.hibernate.type: WARN
org.hibernate.jpa.internal: ERROR
org.springframework: WARN
org.springframework.data.jpa: WARN
org.springframework.validation: WARN
org.springframework.web: WARN
org.springframework.web.socket: WARN
org.zkoss: WARN
com.ultraip: TRACE
---
spring:
profiles: default
thymeleaf:
mode: HTML
http:
multipart:
max-file-size: 3Mb
max-request-size: 4Mb
messages:
cache-seconds: -1
resources:
cache-period: 259200
server:
port: 80
session:
timeout: 86400
compression:
enabled: true
mime-types: "text/html,text/xml,text/css,text/plain,application/json,application/xml,application/javascript"
security:
headers:
cache: false
logging:
file: "/var/log/intranet.log"
level:
org.apache: WARN
org.apache.catalina.webresources.Cache: ERROR
org.hibernate: WARN
org.hibernate.jpa.internal: ERROR
org.springframework: WARN
org.zkoss: WARN
com.ultraip: INFO
“--”表示不同配置文件的开始您是否将YAML中的
profiles:
属性放在spring:
属性中?是的。我还尝试使用application.properties文件并设置spring.profiles.active属性。相同的结果…您是否验证了application.properties(或yaml config)文件是否在spring上下文初始化期间被拾取?@CodeItLikeAmeen是的,它被拾取了我有相同的问题,但在我看来,配置文件仍然是一个好文件,这条消息是错误的。我更喜欢有3个不同的文件,而不是用spring文档中定义的奇怪逻辑覆盖每个配置。3文件使用文件差异提供了一个更易于维护的方法。我建议使用应用程序{default,dev,production}.yml。