我尝试按如下方式设置活动配置文件:
Application.properties(在类路径内)
spring.profile.active = ${app.profile}
属性“app.profile”来自JAR之外的Application.properties:
Application.properties文件(外部)
app.profile = dev
Spring拒绝加载“dev”配置文件。当我在classpath中设置“spring.profile.active”属性时,它按预期工作。
有另一种选择吗?
由于
答案 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
进行注释才能实现此目的。
如果有帮助或需要更多帮助,请告诉我。