1 Spring集成Struts
Struts是基于MVC的,它实现了Model2模型的Web应用框架,Struts框架的核心作用其提供的灵活的控制层,它是基于Java Servlet、JavaBean、ResourceBundle、XML等技术构建的。
Spring对Struts提供了两种集成方式:
一是通过org.springframework.web.context.ContxtLoaderServlet来初始化Spring ApplicationContext的,Spring为了集成Struts,专门提供了org.springframework.web.struts包,为了初始化Spring ApplicationContext,需要在struts-config.xml中配置如下内容:
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">
<set-propertyproperty="contextConfigLocation" value="/WEB-INF/applicationContext.xml"/>
</plug-in>
二是通过org.springframework.web.struts.DelegatingRequestProcessor类充当Action的代理,将Struts Action配置在Spring ApplicationContext中,而且Action不必继承于ActionSuport,每次客户请求Struts Action时,DelegatingRequestProcessor将充当代理的作用,即通过它将Action请求转发给Spring IoC容器进行处理。Action将可以使用到Spring IoC容器的功能。具体使用步骤如下:
在struts-config.xml中配置DelegatingRequestProcessor。
<action path =”/comstomerRegister.do”
type=” org.springframework.web.struts.DelegatingRequestProcessor”/>
其次在Spring配置文件applicationContext.xml中定义名字”/customerRegister.do”的受管JavaBean。
<bean
name=” /vipService” class=” com.hour41.hr.struts.action.VipUseAction”/>
如此一来,Struts 在运行期加载的实际上是DelegatingActionProxy , 而DelegatingActionProxy则实现了针对实际Action的调用代理,Struts最终调用的将是由Spring管理的Action实例。通过这样的方式,Spring 获得了对Action 实例的管理权,它将对Action进行调度,并为Struts提供所需的Action实例。既然Action已经由Spring全权接管,那么就可以将此Action看作是Spring中的一个Bean,它可享受Spring提供的所有服务(依赖注入、实例管理、事务管理等)。
2 Spring集成Hibernate
Hibernate提供了O/R Mapping功能,通过XML配置文件能够将对象映射到RDBMS,开发Hibernate需要如下内容:
Hibernate配置文件。一般可以通过两种方式进行。一是提供hibernate.cfg.xml文件,用于创建Hibernate SessionFactory。二是提供hibernate.properties文件。
Hibernate映射文件。如Vip.hbm.xml
POJO类源文件。如com.hour41.vo.user.Vip.java。
Spring对Hibernate的集成提供了定义Hibernate资源、对Hibernate资源的依赖注
入。定义Hibernate资源:可以通过在Spring配置文件中定义sessionFactory是给出Hibernate映射文件的定义。如本系统的sessionFactory定义如下:
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName">
<value> com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://192.168.1.200:3306/hour41</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value>123456</value>
</property>
</bean>
<bean
id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource" />
</property>
<property name="mappingResources">
<list>
<value>com/hour41/vo/common/City.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
Spring DAO Hibernate抽象提供了HibernateTemplate,HibernateTemplate充分利用了Spring IoC特征,从而实现了对Hibernate资源的依赖注入。如果应用只是用Spring IoC,则只需要在Spring配置文件中为它提供sessionFactory。如上配置文件。