使用MyEclipse6开发Struts+Spring应用程序(10)

10、事务支持

l         Spring支持声明式事务支持,不需要编码,就能实现事务处理

l         由于Spring声明式事务支持通过Spring AOP实现,除了已经追加的spring-aop.jar,还需要追加依赖的jar文件:

Ø         aopalliance.jar

1) 事务管理

l         Spring使用一组事务管理器来管理各种实现的持久机制

l         JDBCiBatis使用jdbc.datasource.DataSourceTransactionManager

<bean id=”transactionManager”

        class=”org.springframework.jdbc.datasource.DataSourceTransactionManager”>

        <property name=”dataSource” ref=”dataSource” />

    </bean>

l         Hibernate使用orm.hibernate3.HibernateTransactionManager

    <bean id="transactionManager"

        class="org.springframework.orm.hibernate3.HibernateTransactionManager">

        <property name="sessionFactory" ref="sessionFactory" />

    </bean>

2) 代理事务

l         Spring提供TransactionProxyFactoryBean来代理事务:

    <bean id="txProxyTemplate"

        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"

        abstract="true">

        <property name="transactionManager" ref="transactionManager" />

        <property name="transactionAttributes">

            <props>

                <prop key="*">

                    PROPAGATION_REQUIRED,-java.lang.Exception

                </prop>

            </props>

        </property>

    </bean>

l         这里引用transactionManager,以便代理不同的事务

l         transactionAttributes可以指定事务属性,格式如下:

PROPAGATION, ISOLATION, readOnly, -Exception, +Exception

3 实现事务支持

l         DAO调用在业务层,所以事务支持应该在业务层实现

l         有了事务代理,只要继承该代理并指定目标为业务对象就可以了:

    <bean id="userService" parent="txProxyTemplate">

        <property name="target" ref="userServiceTarget" />

    </bean>

 

    <bean id="userServiceTarget"

        class="org.xqtu.samples.service.impl.UserServiceImpl">

        <property name="userDao" ref="userDao"></property>

    </bean>

 

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值