A 项目 实战 (二)Spring 与 Struts 集成

该项目用到了Spring和Struts,首先要看看这两部分是怎么集成的

ApplicationContext是Spring的容器,负责管理所有组件。

①管理业务逻辑层组件

②管理持久层组件

所以在web启动时,创建Spring的ApplicationContext实例.

方式1:通过web.xml装载上下文,Spring自己的MVC框架就是采用这种方式

1、启动一个WEB项目的时候,WEB容器会去读取它的配置文件web.xml,读取<listener>和<context-param>两个结点
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>



项目中实际的集成方法:

上面的几种方式,都不是项目中的集成方式,慢慢写哈

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值