• [转]spring声明式事务配置方法(三):TransactionProxyFactoryBean继承方式


    Xml代码

       1. <?xml version="1.0" encoding="UTF-8"?>  
       2.   
       3. <beans xmlns="http://www.springframework.org/schema/beans"  
       4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
       5.     xmlns:aop="http://www.springframework.org/schema/aop"  
       6.     xmlns:tx="http://www.springframework.org/schema/tx"  
       7.     xsi:schemaLocation="  
       8.             http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd  
       9.             http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd  
      10.             http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd">  
      11.     <bean id="testAction" class="test.action.Stuts2ActionTest">  
      12.         <property name="service" ref="templatesService"></property>  
      13.     </bean>  
      14.   
      15.     <bean id="templatesService"  
      16.         class="test.service.impl.TaoTemplatesServiceImpl">  
      17.         <property name="dao" ref="templatesDAO" />  
      18.     </bean>  
      19.   
      20.     <!--   定义DAO bean的事务代理-->  
      21.     <bean id="templatesDAO" parent="txBase">  
      22.         <property name="target">  
      23.             <!--   采用嵌套bean配置目标bean-->  
      24.             <bean class="test.dao.impl.TaoTemplatesDAOImpl">  
      25.                 <!--   为DAO bean注入SessionFactory引用-->  
      26.                 <property name="sessionFactory">  
      27.                     <ref local="sessionFactory" />  
      28.                 </property>  
      29.             </bean>  
      30.         </property>  
      31.     </bean>  
      32.   
      33.     <!-- 配置事务模板,模板bean被设置成abstract bean,保证不会被初始化-->  
      34.     <bean id="txBase"  
      35.         class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"  
      36.         lazy-init="true" abstract="true">  
      37.         <!--   为事务模板注入事务管理器-->  
      38.         <property name="transactionManager">  
      39.             <ref bean="transactionManager" />  
      40.         </property>  
      41.         <!--   设置事务属性-->  
      42.         <property name="transactionAttributes">  
      43.             <props>  
      44.                 <!--   所有以add开头的方法,采用required的事务策略,并且只读-->  
      45.                 <prop key="add*">PROPAGATION_REQUIRED</prop>  
      46.                 <!--   所有以mod开头的方法,采用required的事务策略,并且只读-->  
      47.                 <prop key="mod*">PROPAGATION_REQUIRED</prop>  
      48.                 <!--   所有以del开头的方法,采用required的事务策略,并且只读-->  
      49.                 <prop key="del*">PROPAGATION_REQUIRED</prop>  
      50.                 <!--   其他方法,采用required的事务策略 -->  
      51.                 <prop key="*">readOnly</prop>  
      52.             </props>  
      53.         </property>  
      54.     </bean>  
      55.   
      56.     <!--定义数据源-->  
      57.     <bean id="dataSource"  
      58.         class="org.apache.commons.dbcp.BasicDataSource">  
      59.         <!--   定义数据库驱动-->  
      60.         <property name="driverClassName">  
      61.             <value>oracle.jdbc.driver.OracleDriver</value>  
      62.         </property>  
      63.         <!--   定义数据库url-->  
      64.         <property name="url">  
      65.             <value>jdbc:oracle:thin:@192.168.1.96:1521:yxdb</value>  
      66.         </property>  
      67.         <!--   定义数据库用户名-->  
      68.         <property name="username">  
      69.             <value>yxuser</value>  
      70.         </property>  
      71.         <!--   定义数据库密码-->  
      72.         <property name="password">  
      73.             <value>yxuser</value>  
      74.         </property>  
      75.     </bean>  
      76.   
      77.     <!--定义一个hibernate的SessionFactory-->  
      78.     <bean id="sessionFactory"  
      79.         class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
      80.         <!--   定义SessionFactory必须注入DataSource-->  
      81.         <property name="dataSource">  
      82.             <ref local="dataSource" />  
      83.         </property>  
      84.         <property name="mappingResources">  
      85.             <list>  
      86.                 <!--以下用来列出所有的PO映射文件-->  
      87.                 <value>test/mapping/Tao_Templates.hbm.xml</value>  
      88.             </list>  
      89.         </property>  
      90.         <property name="hibernateProperties">  
      91.             <props>  
      92.                 <prop key="hibernate.dialect">  
      93.                     org.hibernate.dialect.Oracle10gDialect  
      94.                 </prop>  
      95.                 <prop key="hibernate.show_sql">true</prop>  
      96.                 <!--此处用来定义hibernate的SessionFactory的属性:  
      97.                     不同数据库连接,启动时选择create,update,create-drop -->  
      98.                 <prop key="hibernate.hbm2ddl.auto">update</prop>  
      99.             </props>  
     100.         </property>  
     101.     </bean>  
     102.   
     103.     <!--   定义事务管理器,使用适用于Hibernte的事务管理器-->  
     104.     <bean id="transactionManager"  
     105.         class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
     106.         <!--   HibernateTransactionManager   bean需要依赖注入一个SessionFactory bean的引用-->  
     107.         <property name="sessionFactory">  
     108.             <ref local="sessionFactory" />  
     109.         </property>  
     110.     </bean>  
     111. </beans> 
  • 相关阅读:
    css实现导航栏切换动画
    ubuntu系统下mysql重置密码和修改密码操作
    Ubuntu16.04 安装配置nginx,实现多项目管理、负载均衡
    每天一点点之数据结构与算法
    vuex基本使用
    在 npm 中如何用好 registry
    django模板
    skywalking 通过python探针监控Python 微服务应用性能
    Centos7新加磁盘扩容根分区
    python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
  • 原文地址:https://www.cnblogs.com/xinxindiandeng/p/1848722.html
Copyright © 2020-2023  润新知