用BeanNameAutoProxyCreator自动创建事务代理

转载 2015年07月09日 16:39:03

用BeanNameAutoProxyCreator自动创建事务代理
下面介绍一种优秀的事务代理配置策略:采用这种配置策略,完全可以避免增量式配置,所有的事务代理由系统自动创建。容器中的目标bean自动消失,避免需要使用嵌套bean来保证目标bean不可被访问。
这种配置方式依赖于Spring提供的bean后处理器,该后处理器用于为每个bean自动创建代理,此处的代理不仅可以是事务代理,也可以是任意的代理,只需要有合适的拦截器即可。

下面是采用BeanNameAutoProxyCreator配置事务代理的配置文件:
[xhtml] view plaincopy

<?xml version="1.0" encoding="gb2312"?>  
<!--  Spring配置文件的文件头,包含DTD等信息-->  
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"  
    "[url]http://www.springframework.org/dtd/spring-beans.dtd[/url]">  
<beans>  
    <!--定义数据源-->  
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
        <!--  定义数据库驱动-->  
            <property name="driverClassName"><value>com.mysql.jdbc.Driver</value></property>  
        <!--  定义数据库url-->  
            <property name="url"><value>jdbc:mysql://localhost:3306/spring</value></property>  
<!--  定义数据库用户名-->  
            <property name="username"><value>root</value></property>  
        <!--  定义数据库密码-->  
            <property name="password"><value>32147</value></property>  
    </bean>  
    <!--定义一个hibernate的SessionFactory-->  
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">  
        <!--  定义SessionFactory必须注入DataSource-->  
            <property name="dataSource"><ref local="dataSource"/></property>  
            <property name="mappingResources">  
            <list>  
                <!--以下用来列出所有的PO映射文件-->  
                <value>Person.hbm.xml</value>  
            </list>  
            </property>  
            <property name="hibernateProperties">  
            <props>  
<!--此处用来定义hibernate的SessionFactory的属性:  
不同数据库连接,启动时选择create,update,create-drop-->  
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>  
            <prop key="hibernate.hbm2ddl.auto">update</prop>  
        </props>  
        </property>  
    </bean>  
    <!--  定义事务管理器,使用适用于Hibernte的事务管理器-->  
<bean id="transactionManager"  
        class="org.springframework.orm.hibernate3.HibernateTransactionManager">  
            <!--  HibernateTransactionManager  bean需要依赖注入一个SessionFactory bean的引用-->  
            <property name="sessionFactory"><ref local="sessionFactory"/></property>  
</bean>   
    <!--  配置事务拦截器-->  
<bean id="transactionInterceptor"  
class="org.springframework.transaction.interceptor.TransactionInterceptor">  
        <!--  事务拦截器bean需要依赖注入一个事务管理器 -->  
        <property name="transactionManager" ref="transactionManager"/>  
        <property name="transactionAttributes">  
            <!--  下面定义事务传播属性-->  
            <props>  
                <prop key="insert*">PROPAGATION_REQUIRED</prop>  
                <prop key="find*">PROPAGATION_REQUIRED,readOnly</prop>  
                <prop key="*">PROPAGATION_REQUIRED</prop>  
            </props>  
        </property>  
    </bean>  

spring用BeanNameAutoProxyCreator自动创建事务代理

下面介绍一种优秀的事务代理配置策略:采用这种配置策略,完全可以避免增量式配置,所有的事务代理由系统自动创建。容器中的目标bean自动消失,避免需要使用嵌套bean来保证目标bean不可被访问。这种配置...
  • leo918
  • leo918
  • 2011年06月23日 21:02
  • 209

spring事务管理(三)--用BeanNameAutoProxyCreator自动创建事务代理

用BeanNameAutoProxyCreator自动创建事务代理(1)2007-11-13 21:50http://blog.csdn.net/scott_gl/archive/2007/10/28...

spring aop 自动创建代理BeanNameAutoProxyCreator详解

代码示例

Spring声明式事务配置的两种策略SpringAop和Bean后处理器的代理BeanNameAutoProxyCreator

Spring的事务配置有两种:1编程式事务管理配置;2声明式事务管理配置。下面介绍两种声明式事务的配置,声明式事务相比于编程式事务代码耦合更低,无序书写任何事务管理的先关代码。两种声明式事务配置策略分...

使用BeanNameAutoProxyCreator实现spring的自动代理

提到代理,我们可以使用ProxyBeanFactory,并配置proxyInterfaces,target和interceptorNames实现,但如果需要代理的bean很多,无疑会对spring配置...

spring中BeanNameAutoProxyCreator和AnnotationAwareAspectJAutoProxyCreator两种AOP代理方式使用总结

昨天代码review的过程中,我们遇到了两种AOP代理的方式,一种是BeanNameAutoProxyCreator,另外一种是AnnotationAwareAspectJAutoProxyCreat...

Spring事务--非注解--自动代理对象[BeanNameAutoProxy]

spring-datasource.xml:

声明式事务和自动代理初步认识 和 最近用到的重构

我所在的公司一直是使用这种方式 进行spring上的事务控制的 先放代码: ...

在Java中利用动态代理实现数据库连接与事务的自动管理

原文地址:http://blog.csdn.net/tsun7263/article/details/4585688 AOP(Aspect Oriented Programming,面向方面编程...

Spring1.x使用TransactionProxyFactoryBean创建事务代理

Spring同时支持编程式事务策略和声明式事务策略,在实际开发中,几乎都采用声明式事务策略。使用 声明式事务策略的优势 十分明显: ① 声明式事务能大大降低开发者的代码书写量,而且声明式事务几乎不影响...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用BeanNameAutoProxyCreator自动创建事务代理
举报原因:
原因补充:

(最多只允许输入30个字)