【问题标题】:Spring 4: run some initialization code before application context refreshSpring 4:在应用程序上下文刷新之前运行一些初始化代码
【发布时间】:2018-06-28 08:09:36
【问题描述】:

我在 Web 应用程序中使用 Spring 4(不是 Spring Boot)。在创建应用程序上下文中的任何 bean 之前,我需要运行一些初始化代码。我试图创建org.springframework.context.ApplicationContextInitializer 的实现并将其注册到spring.factories 但由于某种原因没有被选中。我该怎么做?

【问题讨论】:

    标签: java spring web spring-4


    【解决方案1】:

    事实证明,实施org.springframework.context.ApplicationContextInitializer 是正确的方法。因为在我的项目中我不使用 Spring MVC 实现,所以这个初始化程序应该注册在 web.xml 而不是 spring.factories 中。这是一个例子:

    <context-param>
        <param-name>contextInitializerClasses</param-name>
        <param-value>my.company.MyContextInitializer</param-value>
    </context-param>
    

    【讨论】:

      【解决方案2】:

      这应该可行。如果没有,请发布您的代码。

      @Component
      public class SampleBootstrap implements ApplicationListener<ContextRefreshedEvent> {
      
          ....
      
          @Override
          public void onApplicationEvent(ContextRefreshedEvent event) {
              Do Something();
          }
      }
      

      【讨论】:

      • 感谢您的回答,但正如事件的名称所暗示的那样,将在刷新应用程序上下文后调用此侦听器。我需要的是完全相反的。其实我已经找到了解决办法。
      猜你喜欢
      • 2012-07-21
      • 1970-01-01
      • 1970-01-01
      • 2011-11-17
      • 1970-01-01
      • 2011-11-25
      • 2020-08-22
      • 1970-01-01
      • 2018-01-16
      相关资源
      最近更新 更多