Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring Boot 1.4:在Tomcat中部署应用程序时设置默认配置文件_Spring_Spring Boot_Tomcat7 - Fatal编程技术网

Spring Boot 1.4:在Tomcat中部署应用程序时设置默认配置文件

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传递一个系统属性,如

我有一个SpringBoot1.4应用程序,它有一个基于YAML的配置文件。配置文件指定默认配置文件:
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。