zoukankan      html  css  js  c++  java
  • Spring声明式事务如何选择代理方式?

    Spring声明式事务如何选择代理方式

     

     

    解决方法:

    1.基于注解方法:

    1. <tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>  

    2.基于xml配置方法:

    <aop:config expose-proxy="true" proxy-target-class="false">

    </aop:config>

    默认false,选择jdbc代理模式,true使用cglib代理模式。

    jdbc代理模式和cglib代理模式优缺点比较:

      1. 若目标对象实现了若干接口,spring使用JDK的java.lang.reflect.Proxy类代理。 
        优点:因为有接口,所以使系统更加松耦合 
        缺点:为每一个目标类创建接口

      2. 若目标对象没有实现任何接口,spring使用CGLIB库生成目标对象的子类。 
        优点:因为代理类与目标类是继承关系,所以不需要有接口的存在。 
        缺点:因为没有使用接口,所以系统的耦合性没有使用JDK的动态代理好。

  • 相关阅读:
    一月5日
    一月4日
    Servlet API中forward()与redirect()的区别
    get和post的区别
    java短信验证码实现
    mybatis框架
    springMVC框架
    spring框架
    redis
    MySQL多表查询
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10189035.html
Copyright © 2011-2022 走看看