由于项目需要,需在ServletContextListener监听接口实现类中调用spring注入的对象,以获取系统初始化参数.代码如下:
springContext为spring管理的应用程序上下文,里面存储spring管理的各种bean对象.deviceManager就是通过spring注入的设备控制业务层.
注意事项:
1. 由于实现的是ServletContextListener接口,故需要实现public void contextInitialized(ServletContextEvent event)方法和public void contextDestroyed(ServletContextEvent event)方法.前者在应用程序加载时调用,里面添加一些初始化业务.如初始化springContext,调用serverInitialized()完成系统服务初始化,后者用于应用程序关闭时调用,主要完成服务资源的注销.
既然是listener接口就要在web.xml中配置相关参数,如下:
<listener>
<listener-class>pams.servlet.SysInitServlet</listener-class>
</listener>
2. 由于需获取spring管理bean,故该listner配置需要放在spring监听器配置之后,以使spring完成初始化,如下:
如果想在外部类中调用通过这种方法得到的spring对象,可以把springContext设为static,然后提供相应的get方法,此处由于不需要故设为private..