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创建代理。不过这种配置方式的可读性不如第三种方式直观。
<!-- 配置事务拦截器 -->
<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创建代理。不过这种配置方式的可读性不如第三种方式直观。
相关文章推荐
- Spring之AOP声明式事务管理(采用xml的配置方式更好)
- Spring 声明式事务的配置方式(一)
- Spring 声明式事务的配置方式(五)
- spring配置声明式事务--注解方式
- Spring配置声明式事务--注解方式
- Spring 声明式事务的配置方式(六)
- Spring配置声明式事务--xml配置文件方式
- Spring 声明式事务的配置方式(二)
- spring 声明式事务管理的配置方式
- Spring 声明式事务的配置方式(三)
- Spring声明式事务管理之三:配置方式+实例
- Spring声明式事务的配置方式
- spring中事务配置的3种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式
- Spring事务配置的五种方式和spring里面事务的传播属性和事务隔离级别 .
- Spring配置Hibernate事务的三种方式
- Spring事务配置的五种方式