用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 aop 自动创建代理BeanNameAutoProxyCreator详解

代码示例
  • zhou_java_hui
  • zhou_java_hui
  • 2016年11月28日 18:12
  • 3922

BeanNameAutoProxyCreator自动创建事务代理

 完整版来叻!! 下面的是Feiing给出的更好的方案,我有一些修改: Java代码             for a single Hibernate SessionFactory (altern...
  • liuzhenwen
  • liuzhenwen
  • 2009年03月03日 10:50
  • 9595

spring用BeanNameAutoProxyCreator自动创建事务代理

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

spring用BeanNameAutoProxyCreator自动创建事务代理

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

用BeanNameAutoProxyCreator自动创建事务代理

用BeanNameAutoProxyCreator自动创建事务代理2008年04月24日 星期四 16:28----------------------------------------------...
  • sl514
  • sl514
  • 2008年12月28日 16:49
  • 585

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

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

spring aop(八)--使用BeanNameAutoProxyCreator创建代理

BeanNameAutoProxyCreator是自动代理创建器的三种之一.它是根据拦截器和设置的Bean的名称表达式做匹配来创建代理.下面是个例子 1.主要依赖(略) 2.声明一个环绕通知(拦截器)...
  • xiejx618
  • xiejx618
  • 2015年02月26日 12:48
  • 9013

spring自动创建代理类DefaultAdvisorAutoProxyCreator和BeanNameAutoProxyCreator的声明顺序

最近做项目,在接入flume监控(开源的分布式监控系统)时,发现监控异常,通过排查发现是spring创建代理类DefaultAdvisorAutoProxyCreator和BeanNameAutoPr...
  • lianhuazy167
  • lianhuazy167
  • 2016年03月23日 09:55
  • 2164

自动创建代理--BeanNameAutoProxyCreator

第一步: package com.spring.advisor; public class Waiter {     public void greetTo(String name)  ...
  • xinhuaxuan
  • xinhuaxuan
  • 2013年05月05日 17:04
  • 921

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

用BeanNameAutoProxyCreator自动创建事务代理(1)2007-11-13 21:50http://blog.csdn.net/scott_gl/archive/2007/10/28...
  • xiancaifu
  • xiancaifu
  • 2011年07月28日 10:17
  • 958
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:用BeanNameAutoProxyCreator自动创建事务代理
举报原因:
原因补充:

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