springboot app:如何使用spel设置配置文件?

时间:2016-12-06 11:13:28

标签: java spring spring-boot

我尝试按如下方式设置活动配置文件:

Application.properties(在类路径内)

spring.profile.active = ${app.profile}

属性“app.profile”来自JAR之外的Application.properties:

Application.properties文件(外部)

app.profile = dev

Spring拒绝加载“dev”配置文件。当我在classpath中设置“spring.profile.active”属性时,它按预期工作。

有另一种选择吗?

由于

2 个答案:

答案 0 :(得分:3)

您可以在启动Spring启动应用程序时指定配置文件名称。

从CMD运行

java -jar my-first-spring-boot-app.jar -Dspring.profiles.active=dev

从Eclipse运行
spring.profiles.active=dev添加为VM参数

如果您想以编程方式设置个人资料,请参阅以下网址。
Spring Boot Programmatically setting profiles

答案 1 :(得分:0)

您可以在Web应用程序的web.xml文件中设置活动配置文件。请参阅下面的代码段:

<context-param>
  <param-name>spring.profiles.active</param-name>
  <param-value>dev, testdb</param-value>
</context-param>

如果他们没有web.xml文件并且您使用Java配置您的Web应用程序,那么您可以使用WebApplicationInitializer。请参阅下面的代码段:

class WebAppInitializer extends WebApplicationInitializer {

  void onStartup(ServletContext container) {
      AnnotationConfigWebApplicationContext rootContext = new AnnotationConfigWebApplicationContext();
      rootContext.getEnvironment().setActiveProfiles("profileName");
      rootContext.register(SpringConfiguration.class);
      container.addListener(new ContextLoaderListener(rootContext));
  }
}

WebAppInitializer需要使用@Configuration进行注释才能实现此目的。

如果有帮助或需要更多帮助,请告诉我。