spring事务管理AOP (mini show)

在《spring + struts 应用集成小例 》中,我们的struts已可与spring的中间业务曾交流了,现在我们需要配置那个zoneManager(如果还记得的话)

    <bean id="txProxyTemplate" abstract="true"
        class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager" ref="transactionManager"/>            ←事务管理器 
        <property name="transactionAttributes">                                                           ←事务的属性源 
            <props>
                <prop key="save*">PROPAGATION_REQUIRED</prop>
                <prop key="update*">PROPAGATION_REQUIRED</prop>               
                <prop key="add*">PROPAGATION_REQUIRED</prop>
                <prop key="remove*">PROPAGATION_REQUIRED</prop>
                <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
            </props>
        </property>
    </bean>

    <bean id="zoneManager" parent="txProxyTemplate">           
        <property name="target">                                                                                    ←指定被代理的对象
            <bean class="com.eatent.service.impl.ZoneManagerImpl">  
                <property name="zoneDao" ref="zoneDao"/>
            </bean>
        </property>
    </bean>

 要在spring应用中使用声明式事务,得用TransactionProxyFactoryBean。PROPAGATION_REQUIRED,readOnly等表示不同的事务传播的规则,这里不一一说明。这里关键是用了通配符“*”对多个方法声明了事务策略。

transactionManager属性指定了一个PlatformTransactionManager的实例,如: 
    <!-- Transaction manager for a single JDBC DataSource -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean> 
 spring的事务管理器将事务管理的责任委托给特定平台的事务实现。这里我们使用JDBC事务在单一的JDBC DataSource中管理事务。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值