小编典典

Spring Boot以编程方式设置配置文件

spring-boot

如何在Spring Boot Application中设置活动配置文件。该应用程序将部署在独立的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);
      }
    }

如果我运行带有嵌入式tomcat的应用程序,则将开发配置文件设置为活动状态,并且工作正常。但是当我在单独的tomcat中部署时。这没用。

我试图在configure方法中设置活动配置文件。但是当我从上下文中获取环境时,我得到了空指针异常。

关于如何设置活动配置文件的任何帮助。


阅读 455

收藏
2020-05-30

共1个答案

小编典典

我也遇到了同样的问题,经过半天的努力,我最终遇到了这个问题:

    @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);
        }
    }
2020-05-30