一般在web项目中启动Spring容器,只需要在web.xml中新增如下两个配置即可,具体的配置示例如下所示:
1. 首先,在web.xml中配置spring的配置文件的位置
<context-param><param-name>contextConfigLocation</param-name>
<param-value>classpath:config/applicationContext.xml</param-value>
</context-param>
注:context-param中定义的是application范围内的参数,存放在servletcontext中
2. 需要在web.xml中定义listener
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
ContextLoaderListener实现ServletContextListener,读取contextConfigLocation中定义的xml文件,
如果不设置contextConfigLocation的初始参数则默认会读取WEB-INF路径下的 application.xml文件。
ContextLoaderListener读取这些XML文件并产生 WebApplicationContext对象,然后将这个对象放置在ServletContext的属性里,这样我们只要可以得到Servlet就可以得到WebApplicationContext对象,并利用这个对象访问spring容器管理的bean。
经过上述的配置,即可以在应用服务器启动时,将spring容器启动起来。
注:可见servlet是web应用开发的底层的东西,及时是spring的启动,也是通过继承这些底层的servlet类,如ServletContextListener,所以搞懂这些底层的东西还是很重要的。