该项目用到了Spring和Struts,首先要看看这两部分是怎么集成的
ApplicationContext是Spring的容器,负责管理所有组件。
①管理业务逻辑层组件
②管理持久层组件
所以在web启动时,创建Spring的ApplicationContext实例.
方式1:通过web.xml装载上下文,Spring自己的MVC框架就是采用这种方式
2、然后,容创建一个ServletContext(servlet上下文),这个web项目的所有部分都将共享这个上下文
3、容器将<context-param>转换为键值对,并交给servletContext
4、容器创建<listener>中的类实例,创建监听器
关于web.xml的详细介绍参照:[web.xml详细介绍]
对于在web.xml配置文件中配置ApplicationContext的自动创建有两种策略:
利用ServletContextListener 实现 (Servlet 2.3之后可使用)
采用load-on-startup Servlet 实现
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
通常项目都有多个配置文件需要载入,则考虑使用即元素<context-param>来确定配置文件的 文件名。
由于ContextLoaderListener加载时,会查找名为contextConfigLocation的参数。 因此,配置context-param时参数名字应该是contextConfigLocation
ContextLoaderListener是Spring 提供ServletContextListener 的一个实现类.
如果没有contextConfigLocation指定配置文件,则Spring 自动查找applicationContext.xml 配置文件
web.xml文件
<context-param>
<param-name>ContextLoaderListener</param-name>
<param-value>
/WEB-INF/dataAccessContext.xml
/WEB-INF/applicationContext.xml
</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Spring 提供ServletContextListener 的一个实现类 ContextLoaderListener,该类可以作 为listener 使用,
它会在创建时自动查找 WEB-INF/下的applicationContext.xrnl 文件。因 此,如果只有一个配置文件,并且文件名为 applicationContex t. xrnl,
则只需在 web.xrnl 文件中增加如下代码即可:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
方式2:通过struts-config.xml装载Spring上下文
通过Spring提供的ContextLoaderPlugIn就可以向struts的ActionServlet装载Spring应用的上下文
struts-config.xml文件
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-property property="contextConfigLocation" value="/WEB-INF/applicationContext.xml" />
</plug-in>
项目中实际的集成方法:
上面的几种方式,都不是项目中的集成方式,慢慢写哈