Spring 整合 Struts2 之 深度解析

本文详细介绍了Spring在Web应用中的启动方式,包括利用ServletContextListener、load-on-startup Servlet以及第三方MVC框架的扩展点。接着,文章讨论了Spring与Struts2的整合,包括让Spring管理控制器和使用自动装配,以及各自的优缺点和配置策略。

一、启动Spring

  对于使用Spring的Web应用,无须手动创建Spring容器,而是通过配置文件声明式的创建Spring容器。在Web应用中创建Spring容器有如下两种方式:

  • 直接在web.xml文件中配置创建Spring容器
    • 利用ServletContextListener实现
    • 采用load-on-startup Servlet实现
  • 利用第三方MVC框架的扩展点,创建容器

1.1 在web.xml中利用ServletContextListener监听器

  这种方式最常见,为了让Spring容器随Web应用的启动而自动启动,借助于ServletContextListener监听器即可完成,该监听器可以在Web应用启动时回调自定义方法(该方法就可以启动Spring容器)。

  Spring提供了一个ContextLoaderListener,该监听器类实现了ServletContextListener接口。该类可以作为Listener使用,它会在创建时自动查找WEB-INF/下的applicationContext.xml文件。因此,如果只有一个配置文件,并且文件名为applicationContext.xml,则只需在web.xml文件中增加如下配置片段即可:

<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

  如果有多个配置文件需要载入,则需要使用<context-param.../>元素来确定配置文件的文件名。ContextLoaderListener加载时,会查找名为contextConfigLocation的初始化参数。因此,配置<context-param.../>时应制定参数名为contextConfigLocation。如下:

<!-- 指定多个配置文件 -->
<context-param>
	<!-- 参数名为contextConfigLocation -->
	<param-name>contextConfigLocation</param-name>	
	<!-- 多个配置文件之间以","隔开 -->
	<param-value>WEB-INF/SpringConfig/*.xml,/WEB-INF/A.xml,/WEB-INF/applicationContext.xml</param-value>
</context-param>

<listener>
	<listener-class>org.springframework.web.context.ContextLoaderListener</lis
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值