您的位置:首页 > 编程语言 > Java开发

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

2010-11-09 15:08 393 查看
这种方式将利用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创建代理。不过这种配置方式的可读性不如第三种方式直观。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: