Muk*_*kun 11 spring-profiles tomcat8 spring-boot
如何在spring boot应用程序中设置活动配置文件 此应用程序将部署在独立的Tomcat中.
我有2个属性文件application- {profile} .properties.
我的应用程序类
@SpringBootApplication
public class Application extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
public static void main(String[] args) {
System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev");
ApplicationContext ctx = SpringApplication.run(Application.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
如果我使用嵌入式tomcat运行应用程序,dev配置文件将设置为活动状态,并且工作正常.但是当我单独部署tomcat时.这是行不通的.
我尝试在configure方法中设置活动配置文件.但是当我从上下文中获取环境时,我得到空指针异常.
有关如何设置活动配置文件的任何帮助.
fal*_*con 12
我也有同样的问题,经过半天的努力,我最终得到了这个:
@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev");
SpringApplication.run(MyApplication.class, args);
}
@Override
public void onStartup(ServletContext servletContext) throws ServletException {
System.setProperty(AbstractEnvironment.ACTIVE_PROFILES_PROPERTY_NAME, "dev");
super.onStartup(servletContext);
}
}
Run Code Online (Sandbox Code Playgroud)
nyx*_*yxz 11
在Spring Boot 2中执行此操作的另一种方法是使用SpringApplicationBuilder:
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
@SpringBootApplication
public class MySpringProgram {
public static void main(String[] args) {
new SpringApplicationBuilder(MySpringProgram.class)
.profiles("profile1", "profile2")
.run(args);
}
}
Run Code Online (Sandbox Code Playgroud)
您可以在启动时设置其他配置文件:
SpringApplication springApp = new SpringApplication(Main.class);
springApp.setAdditionalProfiles("profile1", "profile2");
springApp.run(args);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7060 次 |
| 最近记录: |