在Web应用程序初始化上调用Spring @Service

时间:2016-09-02 02:55:32

标签: spring web initialization initializer

我有一个Web应用程序,只要我在Tomcat webapp文件夹中抛出.war,就需要一些静态变量初始化。这个初始化需要调用@Service来检索初始设置。

我意识到@Autowire注入仅在我的GUI调用服务时才有效

在应用容器中抛出.war后,初始化Spring Web应用程序的最佳方法是什么?我需要这个初始化只执行一次。

1 个答案:

答案 0 :(得分:1)

如果在初始化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 " />

http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#context-functionality-events

另一方面,仅仅是FYI,传统的方法是使用ServletContextListener来完成它。 http://docs.oracle.com/javaee/6/api/javax/servlet/ServletContextListener.html