Spring 4: 运行 应用程序上下文刷新前的一些初始化代码

Spring 4: run some initialization code before application context refresh

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

这应该有效。如果没有,请post你的代码。

@Component
public class SampleBootstrap implements ApplicationListener<ContextRefreshedEvent> {

    ....

    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        Do Something();
    }
}

事实证明,实施 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>