在 Web 应用程序初始化时调用 Spring @Service
Calling a Spring @Service on web application initialization
我有一个 Web 应用程序,当我将 .war 放入 Tomcat webapp 文件夹后,它需要一些静态变量初始化。此初始化需要调用@Service 来检索初始设置。
我意识到 @Autowire 注入仅在我的 GUI 调用服务时有效
将 .war 放入应用程序容器后,初始化我的 Spring 网络应用程序的最佳方法是什么?我只需要执行一次此初始化。
如果你需要在servletContext初始化后做一些事情,在spring中,我们使用ApplicationListener来做这件事。
public class SpringListener implements ApplicationListener<ContextRefreshedEvent>{
// this should work if other setting is right
@Autowired
XXX xxx;
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent ) {
// do things here
}
}
in application.xml
<bean id="eventListenerBean" class="package.name.SpringListener " />
另一方面,仅供参考,传统方法是使用 ServletContextListener 来完成。
http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html
我有一个 Web 应用程序,当我将 .war 放入 Tomcat webapp 文件夹后,它需要一些静态变量初始化。此初始化需要调用@Service 来检索初始设置。
我意识到 @Autowire 注入仅在我的 GUI 调用服务时有效
将 .war 放入应用程序容器后,初始化我的 Spring 网络应用程序的最佳方法是什么?我只需要执行一次此初始化。
如果你需要在servletContext初始化后做一些事情,在spring中,我们使用ApplicationListener来做这件事。
public class SpringListener implements ApplicationListener<ContextRefreshedEvent>{
// this should work if other setting is right
@Autowired
XXX xxx;
public void onApplicationEvent(ContextRefreshedEvent contextRefreshedEvent ) {
// do things here
}
}
in application.xml
<bean id="eventListenerBean" class="package.name.SpringListener " />
另一方面,仅供参考,传统方法是使用 ServletContextListener 来完成。 http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html