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>
我在 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>