读书人

Spring容器启动后自动执行Servlet开展

发布时间: 2013-11-08 17:52:35 作者: rapoo

Spring容器启动后自动执行Servlet进行预处理
通常做法是定义一个Servlet,并在web.xml中配置Servlet的启动顺序<load-on-startup>的值在DispatcherServlet之后。但这样做的缺点是在Servlet中无法使用Spring的依赖注入功能,只能使用WebApplicationContext的getBean()方法获取bean。

找到的解决办法如下:

1、自定义一个用于代理启动Servlet的类DelegatingServletProxy:


<servlet>    <description></description>    <display-name>InitialServlet</display-name>    <servlet-name>initialServlet</servlet-name>    <servlet-class>cn.edu.swu.oa.common.util.DelegatingServletProxy </servlet-class>    <load-on-startup>2</load-on-startup>  </servlet>  <servlet-mapping>    <servlet-name>initialServlet</servlet-name>    <url-pattern>/InitialServlet</url-pattern>  </servlet-mapping>

完成这些操作后,就可以在Spring容器启动后执行自定义的Servlet,并且在自定义Servlet中可以使用Spring Annotation的自动注入功能。

读书人网 >互联网

热点推荐