随着我的个人项目《EasyChat》(Web项目)的开始,我将系统性的学习一下Spring 和 Hibernate这两个相对主流的框架。
首先,Spring 基于IOC容器的,既然是web项目,既是要将IOC的创建在web项目的初始化时,因此需要在web.xml文件配置相关的属性。
现在来解释一下web.xml 这个文件
web.xml
查考
http://blog.csdn.net/believejava/article/details/43229361
因此将IOC 创建交给web.xml中配置的监听器。
Listener配置:
配置Listener只要向Web应用注册Listener实现类即可,无序配置参数之类的东西,因为Listener获取的是Web应用ServletContext(application)的配置参数。为Web应用配置Listener的两种方式:
l 使用@WebListener修饰Listener实现类即可。
l 在web.xml文档中使用进行配置。
我们选择web.xml这种配置方式,只有一个元素指定Listener的实现类,如下所示:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这里的用于Spring的加载,Spring加载可以利用ServletContextListener实现,也可以采用load-on-startup Servlet 实现,但是当需要用到bean时,但加载顺序是:先加载后加载,则中初始化操作中的bean为null;所以,如果过滤器中要使用到bean,此时就可以根据加载顺序 -> -> ,将spring的加载改成Listener的方式。
1) 利用load-on-startup Servlet实现:
<servlet>
<servlet-name>context</servlet-narne>
<servlet-class>
org.springframework.web.context.ContextLoaderServlet
</servlet-class>
<load-on-startup>1</load-on-startup> //容器启动时加载该servlet
</servlet>
2) 采用ServletContextListener 实现:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
我们选择了第二种方式,在J2EE工程中web服务器启动的时候最先调用web.xml,上面这段配置的意思是加载spring的监听器,其中ContextLoaderListener的作用就是启动Web容器时,自动装配applicationContext.xml的配置信息,执行它所实现的方法。