春季4:在刷新应用程序上下文之前运行一些初始化代码

时间:2018-06-27 14:59:35

标签: java spring web spring-4

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

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

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

@Component
public class SampleBootstrap implements ApplicationListener<ContextRefreshedEvent> {

    ....

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