Spring 声明式事务的配置方式(四)

    这种方式将利用DefaultAdvisorAutoProxyCreator自动创建事务代理,这个类实现了BeanProcessor接口,当ApplicationContext读入所有的Bean配置信息后,这个类将扫描上下文,寻找所有的Advisor(一个Advisor是一个切入点和一个通知的组成),将这些Advisor应用到所有符合切入点的Bean中。   

 

<!-- 配置事务拦截器 -->

       <bean id="transatioinInterceptor"

              class="org.springframework.transaction.interceptor.TransactionInterceptor">

              <!—事务传递属性-->

            <property name="transactionAttributeSource"

                ref="transactionAttributeSource"></property>

             <!—事务拦截器中需要依赖注入一个事务管理器-->

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

</bean>

<!—定义事务Advisor-->

<bean id="transactionAdvisor" class="org.springframework.transaction.interceptor.

           TransactionAttributeSourceAdvisor">

       <!—传入Inteceptor -->

        <property name="transactionInterceptor" ref="transactioinInterceptor"></property>

</bean>

<!—DefaultAdvisorAutoProxyCreator扫描所有的Advisor,为每个Bean创建事务代理-->

<bean

   class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator">

</bean>

 

     其实这种方法和第三种方法比较类似,都是使用Bean后处理器为目标Bean创建事务代理,不过第三种方式事务拦截器创建代理,而这种方法使用Advisor创建事务代理。事实上,这种事务代理的方式更加简洁,它将自动搜索Spring容器中的Advisor并为容器中所有Bean创建代理。不过这种配置方式的可读性不如第三种方式直观。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值