当前位置: 首页 > 面试题库 >

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

海叶秋
2023-03-14
问题内容

如何在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方法中设置活动配置文件。但是当我从上下文中获取环境时,我得到了空指针异常。

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


问题答案:

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

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


 类似资料:
  • 如何在Spring Boot应用程序中设置活动配置文件。该应用程序将部署在独立的Tomcat中。 我有2个属性文件应用程序-{profile}。属性。

  • 我需要为SpringBoot应用程序设置两个数据源。目前,用于(成功地)处理MariaDB服务器上超时的单个数据源工作解决方案在application.properties中设置了以下三个参数 我使用基于Java的数据源配置检查过的各种示例大致如下:

  • 我习惯于用JavaFx编写如下所示的代码,因为这就是我几年前学习的方式。 我最近安装了JetBrains IntelliJ IDEA Ultimate Edition 2018.1.6,我发现要打开primaryStage窗口,我需要一个fxml文件。 我必须这么做, 如果我运行第一个代码片段,什么都不会显示。但是如果我用FXMLLoader.load(getClass(). getResourc

  • 问题内容: 我想以编程方式从应用程序中加载Log4j2 XML配置文件。 试过这个: 还有这个: 但是什么都没有。 问题答案: 自己找到答案。有人可能会觉得有用。

  • 我在logback.xml中定义了一个logback appender,它是一个DB appender,但是我想知道是否有任何方法可以使用我自己定义为bean的连接池在java中配置appender。 我发现了类似的事情,但从来没有真正的答案。

  • 问题内容: 我正在尝试在应用程序启动期间进行设置,但似乎为时已晚,非无头模式已经启动: 除此之外,还有另一种方法让无头为真吗?我不希望在控制台上进行任何配置。 问题答案: 我正在使用一个类,该类在常量(和其他静态代码)中静态加载JFreeChart的不同部分。 将静态加载块移到类的顶部解决了我的问题。 这不起作用: 通过将Java移动到类的顶部,让Java尽早执行该静态块! 当考虑它时,这是完全有

  • 问题内容: 我正在使用logback,并且尝试在Java程序中以编程方式设置日志文件名(类似于以编程方式设置LogbackAppender路径),并且我尝试按以下方法调整该解决方案: 在logback-test.xml中: 然后再次在我的Java程序中: 但是结果是两个日志,一个完整并按我的意愿命名,例如“ 1319041145343.log”,另一个为空并命名为“ log_file_name_I

  • 问题内容: 是否可以覆盖已经在中配置的附加程序的“文件”属性,而无需创建新的附加程序?如果是的话-怎么样? 这是这种情况:我有两个apender,A1是ConsoleAppender,而A2是FileAppender。A2的“文件”指出了一个一般性error.log: 此附加程序仅记录错误级别的事件,或更糟糕的是 。 现在,我希望根据导致错误的类将这些错误写入不同的文件中,因为正在创建实例的类有多