javascript
Spring Hibernate使用TransactionInterceptor声明式事务配置
<!-- 事務管理器 -->
?<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
???? <property name="sessionFactory">
???????? <ref bean="sessionFactory"/>
???? </property>
?</bean>
?<!-- 事務攔截器,激活事務管理器所必須的bean -->
?<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">?
??????? <property name="transactionManager">?
??????????? <ref bean="transactionManager" />?
??????? </property>??
??????? <!-- 配置事務屬性 -->?
??????? <property name="transactionAttributes">?
?????????? <props>?
????????????? <prop key="delete*">PROPAGATION_REQUIRED</prop>?
????????????? <prop key="add*">PROPAGATION_REQUIRED</prop>?
????????????? <prop key="update*">PROPAGATION_REQUIRED</prop>?
????????????? <prop key="save*">PROPAGATION_REQUIRED</prop>?
????????????? <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>?
????????? </props>?
?????? </property>?
???? </bean>?
???? <!-- 定義事務處理代理bean,他需要兩個屬性,一個是指定需要代理的bean,另一個是代理bean所需的事務攔截器 -->
???? <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">?
??????? <property name="beanNames">?
?????????? <list>?
????????????? <value>tempService</value>?
?????????? </list>?
??????? </property>?
??????? <property name="interceptorNames">?
?????????? <list>?
????????????? <value>transactionInterceptor</value>?
?????????? </list>?
??????? </property>?
???? </bean>
??? <!-- 業務邏輯層 -->
?<bean id="tempService"
??class="com.cj.transaction.service.TempService" abstract="false"
??lazy-init="default" autowire="default" dependency-check="default">
??<property name="userDAO">
???<ref bean="userDAO" />
??</property>
??<property name="deptDAO">
???<ref bean="deptDAO" />
??</property>
?</bean>
?<bean id="userDAO" class="com.cj.transaction.hibernate.UserDAO">
??<property name="sessionFactory">
???<ref bean="sessionFactory" />
??</property>
?</bean>
?<bean id="deptDAO" class="com.cj.transaction.hibernate.DeptDAO">
??<property name="sessionFactory">
???<ref bean="sessionFactory" />
??</property>
?</bean>
如果模塊過多話,可以考慮用自動創建事務代理的方式
??? <!-- 自動代理 -->?
??? <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>
轉載于:https://www.cnblogs.com/panjun-Donet/archive/2010/08/02/1790311.html
總結
以上是生活随笔為你收集整理的Spring Hibernate使用TransactionInterceptor声明式事务配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ip classles
- 下一篇: ECSHOP二次开发文档【文件结构和数据