在内部为Tomcat Webapp设置活动的Spring Boot配置文件(通过application.properties)

时间:2018-04-03 08:36:15

标签: java maven spring-boot

我想使用Spring Boot 2.0.0使用两个不同的弹簧配置文件prodaprodb(在application.properties中设置配置文件)。

  

在Spring Boot中,您还可以在application.properties中设置活动配置文件,如以下示例所示:

     

spring.profiles.active=production

Source: 74.6

现在我只想让proda工作。我有三个不同的属性文件:

application-proda.yml

database:
  conn:
    blablabla: blablaqwer

application-prodb.yml

database:
  conn:
    blablabla: albalbrewq

以及

application.properties

spring.profiles.active=proda

在IDE中运行应用程序,或使用maven将其打包为jar时,一切都按预期工作(设置了活动配置文件[proda],加载了application-proda.yml)。在(例如@PostConstruct)某个类中调用它:

System.out.println(Arrays.toString(env.getActiveProfiles()));

将导致

[proda]

但是当使用maven构建为war并将其部署到Tomcat服务器时,将导致相同的代码

[]

并且未加载application-proda.yml。这意味着应用程序没有读取application.properties,因此出于某种原因没有加载活动配置文件proda

但已完成的war包含WEB-INF\classes\下的所有必需文件。

application.war/WEB-INF/classes/

我已经看到了一些解决方案,您可以将-Dspring.profiles.active=proda设置为命令行参数,或者在web.xml中设置有效配置文件,但这不是我需要的,因为我不喜欢#39;有一个web.xml,我想使用Spring Boot功能并在application.properties中声明个人资料。它应该像在IDE中一样工作,或者打包为带有maven的jar

0 个答案:

没有答案