`

spring2.5 与 ibiats 2.x , hibernate 3.x 的事务整合配置

阅读更多
一: spring2.5ibiats 2.x 的 配置整合

1.WEB-INF目录下的jdbc.properties(WEB-INF/jdbc.properties)

  jdbc.driverClassName=net.sourceforge.jtds.jdbc.Driver
  jdbc.url=jdbc:jtds:sqlserver://192.168.1.3:1433/club
  jdbc.username=club
  jdbc.password=club


2.WEB-INF目录下的applicationContext.xml(WEB-INF/applicationContext.xml)
  <?xml version="1.0" encoding="UTF-8"?>

<!--
  - Application context definition for JPetStore's business layer.
  - Contains bean references to the transaction manager and to the DAOs in
  - dataAccessContext-local/jta.xml (see web.xml's "contextConfigLocation").
  -->
<beans xmlns="http://www.springframework.org/schema/beans"
		xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
		xmlns:aop="http://www.springframework.org/schema/aop"
		xmlns:tx="http://www.springframework.org/schema/tx"
		xsi:schemaLocation="
			http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
			http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
			http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">

<!-- 读取数据源properties文件 -->
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		<property name="locations">
			<list>
				<!-- <value>WEB-INF/mail.properties</value> -->
				<value>WEB-INF/jdbc.properties</value>
			</list>
		</property>
	</bean>

<!-- 设置数据源链接参数 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
		<property name="driverClassName" value="${jdbc.driverClassName}"/>
		<property name="url" value="${jdbc.url}"/>
		<property name="username" value="${jdbc.username}"/>
		<property name="password" value="${jdbc.password}"/>
	</bean>

<!-- 配置Ibiats的事务管理器 -->		
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
		<property name="configLocation" value="WEB-INF/sql-map-config.xml"/>
		<property name="dataSource" ref="dataSource"/>
	</bean>

	<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<property name="dataSource" ref="dataSource"/>
	</bean>
	
<!-- 定义事务拦截器bean --> 	
	<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
	
	      <property name="transactionManager" ref="transactionManager" />
	      <property name="transactionAttributes"> 
			<props> 
				<!-- Service -->
				<prop key="update*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="insert*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="delete*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="post*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="deny*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="agree*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="bar*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="join*">PROPAGATION_REQUIRED,-Exception</prop>
				<prop key="Approve*">PROPAGATION_REQUIRED,-Exception</prop>
				<!--DAO-->
				<prop key="search*">PROPAGATION_REQUIRED,readOnly,-Exception</prop>
			</props> 
		</property>
	</bean>
    
<!-- 定义BeanNameAutoProxyCreator-->   
  <bean id="autoproxy" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">

      <property name="beanNames">
       <list>
        <value>*Service</value>
       </list>
      </property>
      <property name="interceptorNames">
       <list>
           <value>transactionInterceptor</value>
       </list>
      </property>
     </bean>
</beans>


二:spring2.5Hibernate 3.x 的 配置整合

 <?xml version="1.0" encoding="UTF-8"?>   
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">   
  
<beans>   
    <bean id="dataSource"  
        class="org.apache.commons.dbcp.BasicDataSource">   
        <property name="driverClassName">   
            <value>com.mysql.jdbc.Driver</value>   
        </property>   
        <property name="url">   
            <value>jdbc:mysql://localhost:3306/myuser</value>   
        </property>   
        <property name="username">   
            <value>lighter</value>   
        </property>   
        <property name="password">   
            <value>12345</value>   
        </property>   
    </bean>   
    <bean id="sessionFactory"  
        class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">   
        <property name="dataSource" ref="dataSource" />   
        <property name="hibernateProperties">   
            <props>   
                <prop key="hibernate.dialect">   
                    org.hibernate.dialect.MySQLDialect   
                </prop>   
                <prop key="hibernate.show_sql">true</prop>   
            </props>   
        </property>   
        <property name="mappingResources">   
            <list>   
                <value>org/mmc/dao/domain/User.hbm.xml</value>   
            </list>   
        </property>   
    </bean>   
    <!-- 配置Hibernate的事务管理器 -->   
    <bean id="transactionManager"  
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">   
        <property name="sessionFactory" ref="sessionFactory" />   
    </bean>   
  
    <!-- 定义事务拦截器bean -->   
    <bean id="transactionInterceptor"  
        class="org.springframework.transaction.interceptor.TransactionInterceptor">   
        <property name="transactionManager" ref="transactionManager" />   
        <property name="transactionAttributes">   
            <props>   
                <prop key="insert*">PROPAGATION_REQUIRED</prop>   
                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>   
                <prop key="*">PROPAGATION_REQUIRED</prop>   
            </props>   
        </property>   
    </bean>   
  
    <!-- 定义BeanNameAutoProxyCreator-->   
    <bean   
        class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">   
        <property name="beanNames">   
        <!-- 所有名字以DAO,Service结尾的bean,将由该"bean后处理器"为其创建事务代理;实际上应该在业务层进行事务管理,这里只是举一个简单例子 -->   
            <value>*DAO,*Service</value>   
        </property>   
        <!--  下面定义BeanNameAutoProxyCreator所需的事务拦截器-->   
        <property name="interceptorNames">   
            <list>   
                <!-- 可以增加其他的拦截器 -->   
                <value>transactionInterceptor</value>   
            </list>   
        </property>   
    </bean>   
  
    <!-- 举下面这一个例子:这时候,这一个bean已经有了事务管理,可以增加类似的bean -->   
    <bean id="searchUserDAO" class="org.mmc.dao.impl.SearchUserDAO">   
        <property name="sessionFactory" ref="sessionFactory" />   
    </bean>   
</beans>  


下面再看一种也是常用的使用bean继承简化事务代理配置
 <bean id="test1" class="test.TransactionTestImpl">   
    <property name="ds"><ref local="dataSource"/></property>   
</bean>   
  
<bean id="test2" class="test.TestImpl">   
    <property name="ds"><ref local="dataSource"/></property>   
</bean>   
  
   <bean id="baseTxProxy" lazy-init="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" abstract="true">    
       <property name="transactionManager"><ref bean="transactionManager"/></property>    
       <property name="transactionAttributes">    
           <props>    
               <prop key="*">PROPAGATION_REQUIRED</prop>    
           </props>    
       </property>    
   </bean>    
  
   <bean id="testTrans1" parent="baseTxProxy">    
       <property name="target">    
           <ref local="test1"/>    
       </property>    
   </bean>    
   <bean id="testTrans2" parent="baseTxProxy">    
       <property name="target">    
           <ref local="test2"/>    
       </property>    
   </bean>   

分享到:
评论

相关推荐

    Struts2.X+Hibernate3.X+Spring2.5 整合

    标题"Struts2.X+Hibernate3.X+Spring2.5 整合"指的是将这三个框架的特定版本(Struts2.X,Hibernate3.X,Spring2.5)集成到同一个项目中,实现高效的企业级应用开发。这种整合能够充分利用各个框架的优势,使开发者...

    springmvc, spring5.x , hibernate5.x 整合

    整合Spring MVC、Spring 5.x和Hibernate 5.x,我们可以构建一个强大的后端系统。首先,我们需要在Spring配置中声明Hibernate的DataSource和SessionFactory,然后通过Spring的JdbcTemplate或Hibernate的Session接口...

    struts2.1+spring2.5+hibernate3.3整合之第一步(spring2.5+hibernate3.3)

    3. 配置Hibernate:在Spring配置文件中,配置Hibernate的SessionFactory,并设置数据库连接信息。同时,需要编写实体类和对应的映射文件(`.hbm.xml`),以便Hibernate能够自动管理数据库表。 4. 配置Struts2:创建...

    Pro Spring 2.5 高清中文版.part11.rar

    Pro Spring 2.5 高清中文版.part11.rar

    Pro Spring 2.5 高清中文版.part01.rar

    Pro Spring 2.5 高清中文版,真正的高清版中文版!首发! Pro Spring 2.5 高清中文版.part01.rar

    Struts1.x Spring2.x Hibernate3.x DWR2.x整合工具文档v1.00

    #### 二、Spring2.x与Hibernate3.x的整合 **2.1 Hibernate配置文件** Hibernate的配置文件(`hibernate.cfg.xml`)用于配置数据库连接等基本信息。 ```xml &lt;!DOCTYPE hibernate-configuration PUBLIC "-//...

    org.springframework.orm.hibernate3.LocalSessionFactoryBean

    在开发基于Spring与Hibernate整合的应用时,可能会遇到“`org.springframework.orm.hibernate3.LocalSessionFactoryBean` not found”这样的错误提示。这个问题通常发生在尝试通过Spring管理Hibernate ...

    struts2-spring2.5-hibernate3.3.rar

    Struts2-Spring2.5-Hibernate3.3是一个经典的Java Web开发框架组合,通常被称为SSH框架。这个压缩包提供了这三个框架集成的完整资源,帮助开发者构建基于MVC(Model-View-Controller)架构的高效、可维护的Web应用...

    struts2.0 hibernate3 spring2.5整合配置.doc

    ### Struts2.0 + Hibernate3 + Spring2.5 整合配置详解 #### 一、概述 在软件开发过程中,使用多种框架进行整合能够更好地实现业务逻辑与数据访问层的分离,提高代码的可维护性和扩展性。Struts2.0、Hibernate3和...

    struts2+Spring2.5+Spring3.2)实现登录.

    ### Struts2 + Spring2.5 + Spring3.2 实现登录模块的详细解析 #### 一、项目背景与架构概述 本项目旨在利用Struts2框架、Spring2.5和Spring3.2来实现一个登录系统。Struts2作为MVC框架负责处理用户的请求,而...

    Spring2.5+Hibernate3.2开发手册

    Spring 2.5 提供了对Hibernate的集成支持,可以方便地通过Spring的事务管理来控制Hibernate的事务边界,避免了手动管理数据库事务的复杂性。同时,Spring的DAO支持可以帮助简化数据访问层的编写,使得应用能够更加...

    strust2.1.6+spring2.5+hibernate3.3.rar

    在实际开发中,开发者需要配置Struts2的配置文件(struts.xml)、Spring的配置文件(如applicationContext.xml)以及Hibernate的配置文件(hibernate.cfg.xml),定义动作映射、bean实例化规则以及数据库连接参数等...

    Spring2.5_学习笔记.doc.zip

    此外,对于ORM框架,如Hibernate和JPA,Spring2.5提供了更丰富的集成支持,简化了事务管理,并通过声明式事务处理进一步降低了事务管理的复杂度。 在Web开发领域,Spring MVC框架在2.5版本中也得到了增强,新增了...

    传智播客Spring2.5视频教程spring.ppt

    传智播客Spring2.5视频教程spring.ppt 讲的很详细

    Eclipse中Struts2+Spring2.5+Hibernate3整合

    在Java Web开发中,"Eclipse中Struts2+Spring2.5+Hibernate3整合"是一个常见的技术栈,用于构建高效、模块化的Web应用程序。这三个框架分别是:Struts2(MVC框架)、Spring2.5(依赖注入和企业服务框架)和Hibernate...

    Pro Spring 2.5 高清中文版.part12.rar

    Pro Spring 2.5 高清中文版.part12.rar

    Pro Spring 2.5 高清中文版.part10.rar

    Pro Spring 2.5 高清中文版.part10.rar

    Pro Spring 2.5 高清中文版.part07.rar

    Pro Spring 2.5 高清中文版.part07.rar

    Pro Spring 2.5 高清中文版.part02.rar

    Pro Spring 2.5 高清中文版.part02.rar

Global site tag (gtag.js) - Google Analytics