城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

spring 生命式事务管理配置

Posted on 2009-04-29 18:31 sailor 阅读(386) 评论(0)  编辑  收藏 所属分类: spring
1、hibernate.properties
1hibernate.dialect=org.hibernate.dialect.MySQLDialect
2hibernate.driverClassName=com.mysql.jdbc.Driver
3hibernate.url=jdbc:mysql://127.0.0.1:3306/test
4hibernate.username=root
5hibernate.password=sa
6hibernate.showSQL=true
7hibernate.maxActive=50
8hibernate.maxIdle=30
9hibernate.maxWait=1000

2、applicationContext.xml
  1<?xml version="1.0" encoding="UTF-8"?>
  2<beans
  3    xmlns="http://www.springframework.org/schema/beans"
  4    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  5    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
  6
  7     <!-- 读入属性文件 -->
  8     <bean id="propertyConfig" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  9      <property name="locations">
 10       <list>
 11        <value>classpath:hibernate.properties</value>
 12       </list>
 13      </property>
 14     </bean>
 15
 16     <!-- 配置数据源,可以其他方式 -->
 17     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
 18         <property name="driverClassName" value="${hibernate.driverClassName}" />
 19          <property name="url" value="${hibernate.url}" />
 20          <property name="username" value="${hibernate.username}" />
 21          <property name="password" value="${hibernate.password}" />
 22         <property name="maxActive" value="${hibernate.maxActive}" />
 23          <property name="maxIdle" value="${hibernate.maxIdle}" />
 24          <property name="maxWait" value="${hibernate.maxWait}" />
 25      </bean>
 26
 27 <!-- 配置Hibernate的Session工厂,注入数据源、映射文件 -->
 28    <bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 29     <property name="dataSource">
 30        <ref local="dataSource"/>
 31     </property>
 32     <property name="mappingResources">
 33         <list>
 34             <value>com/sailor/test/dao/Employee.hbm.xml</value>
 35         </list>
 36     </property>
 37     <property name="hibernateProperties">
 38       <props>
 39         <prop key="hibernate.dialect">${hibernate.dialect}</prop>
 40         <prop key="hibernate.show_sql">${hibernate.showSQL}</prop>
 41       </props>
 42     </property>
 43    </bean>
 44
 45    
 46    <!--   定义事务管理器,使用适用于Hibernte的事务管理器-->
 47    <bean id="transactionManager"
 48        class="org.springframework.orm.hibernate3.HibernateTransactionManager">
 49        <!--   HibernateTransactionManager   bean需要依赖注入一个SessionFactory bean的引用-->
 50        <property name="sessionFactory">
 51            <ref local="sessionFactory" />
 52        </property>
 53    </bean>
 54
 55    <!--   配置事务拦截器-->
 56    <bean id="transactionInterceptor"
 57        class="org.springframework.transaction.interceptor.TransactionInterceptor">
 58        <!--   事务拦截器bean需要依赖注入一个事务管理器 -->
 59        <property name="transactionManager" ref="transactionManager" />
 60        <property name="transactionAttributes">
 61            <!--   下面定义事务传播属性-->
 62            <props>
 63                <!--   所有以save开头的方法,采用required的事务策略-->
 64                <prop key="save*">PROPAGATION_REQUIRED</prop>
 65                <!--   所有以mod开头的方法,采用required的事务策略-->
 66                <prop key="mod*">PROPAGATION_REQUIRED</prop>
 67                <!--   所有以del开头的方法,采用required的事务策略-->
 68                <prop key="del*">PROPAGATION_REQUIRED</prop>
 69                <!--   其他方法,readOnly -->
 70                <prop key="*">readOnly</prop>
 71            </props>
 72        </property>
 73    </bean>
 74
 75    <!-- 定义BeanNameAutoProxyCreator,该bean是个bean后处理器,无需被引用,因此没有id属性
 76        这个bean后处理器,根据事务拦截器为目标bean自动创建事务代理 -->
 77    <bean
 78        class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
 79        <!--指定对满足哪些bean name的bean自动生成业务代理 -->
 80        <property name="beanNames">
 81            <!--   下面是所有需要自动创建事务代理的bean-->
 82            <list>
 83                 <value>employeeService</value>
 84            </list>
 85            <!--   此处可增加其他需要自动创建事务代理的bean-->
 86        </property>
 87        <!--   下面定义BeanNameAutoProxyCreator所需的事务拦截器-->
 88        <property name="interceptorNames">
 89            <list>
 90                <value>transactionInterceptor</value>
 91                <!-- 此处可增加其他新的Interceptor -->
 92            </list>
 93        </property>
 94    </bean>
 95    
 96    <!-- dao层 -->
 97    <bean id="employeeDAO" class="com.sailor.test.dao.EmployeeDAO">
 98        <property name="sessionFactory" ref="sessionFactory"></property>
 99    </bean>
100    
101    <!-- service层 -->
102    <bean id="employeeService" class="com.sailor.test.service.impl.EmployeeServiceImpl">
103        <property name="employeeDAO" ref="employeeDAO" />
104    </bean>
105    
106    </beans>
源代码:/Files/sailor/spring_hibernate_transaction1.rar

只有注册用户登录后才能发表评论。


网站导航: