`
sinokaka
  • 浏览: 327107 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

项目总结--事务管理自动代理

阅读更多

         项目使用了Spring的声明式事务管理,其是通过SpringAop实现的,主要是对于所有开发人员都是透明的,不用开发人员进行管理。同时使用了Spring的自动代理功能进行实现。

主要由一下几部分声明组成,需要注意的是,Spring对于关键的一些类不关心名称,只关心类型,它根据类型进行装配。

A)声明自动代理类

xml 代码
  1. <bean id="proxyCreator"  
  2.     class="org.springframework.aop.framework.autoproxy.DefaultAdvisorAutoProxyCreator" />  

 

2)事务拦截增强,定义一些事务管理的规则

xml 代码
  1. <bean id="txInterceptor"  
  2.     class="org.springframework.transaction.interceptor.TransactionInterceptor">  
  3.         <property name="transactionManager" ref="transactionManager" />  
  4.         <property name="transactionAttributes">  
  5.             <props>  
  6.                 <prop key="save*">  
  7. PROPAGATION_REQUIRED,-Exception   
  8. </prop>  
  9.                 <prop key="delete*">  
  10.                     PROPAGATION_REQUIRED,-Exception   
  11.                 </prop>  
  12.                 <prop key="get*">  
  13.                     PROPAGATION_REQUIRED,readOnly,-Exception   
  14.                 </prop>  
  15.                 <prop key="detail*">  
  16.                     PROPAGATION_REQUIRED,readOnly,-Exception   
  17.                 </prop>  
  18.                 <prop key="*">  
  19. PROPAGATION_REQUIRED,readOnly   
  20. </prop>  
  21.             </props>  
  22.         </property>  
  23.     </bean>  

 

3)定义pointcutadvice的装配器,即告知Spring,某个增强与某个切入点关联,在这里实现了一个切入点(pointcut) com.ufida.cvms.util.proxy.AutoLogicPointCut.

xml 代码
  1. <bean id="advisor"  
  2.     class="org.springframework.aop.support.DefaultPointcutAdvisor">  
  3.         <property name="pointcut">  
  4. <bean class="com.ABC.bcd.util.proxy.AutoLogicPointCut" />  
  5.         </property>  
  6.         <property name="advice">  
  7.             <ref bean="txInterceptor" />  
  8.         </property>  
  9. </bean>  

 

切入点代码如下,主要实现Pointcut接口即可以。GetClassFilter方法中判断符合切入点类的规则。GetMethodMatcher返回符合切入点类中方法的规则。在这里,只增强了DefaultLogic类,及其子类。方法是类中的所有方法。因为Logic是业务得重要操作地方,所以事务管理到Logic就可以了。

java 代码
  1. public class AutoLogicPointCut implements Pointcut {   
  2.   
  3.     /* (non-Javadoc)  
  4.      * @see org.springframework.aop.Pointcut#getClassFilter()  
  5.      */  
  6.     public ClassFilter getClassFilter() {   
  7.         return new RootClassFilter(DefaultLogic.class);   
  8.     }   
  9.   
  10.     /* (non-Javadoc)  
  11.      * @see org.springframework.aop.Pointcut#getMethodMatcher()  
  12.      */  
  13.     public MethodMatcher getMethodMatcher() {   
  14.         return MethodMatcher.TRUE;   
  15.     }   
  16.   
  17. }   

 

分享到:
评论

相关推荐

    SSM事务管理所需jar包

    总结来说,这些jar包构成了SSM事务管理的基础,通过AOP和动态代理技术,实现了对数据库操作的事务控制,确保了系统的稳定性和数据一致性。理解并掌握这些核心jar包的作用,对于优化SSM项目、提升开发效率和代码质量...

    spring 事务管理例子(TransactionProxyFactoryBean代理机制 和 tx/aop)

    总结来说,本例子通过`TransactionProxyFactoryBean`和`@Transactional`展示了如何在Spring中实现声明式事务管理,这两种方式都利用了AOP来封装事务逻辑,使代码更加整洁,降低了事务管理的复杂性。在实际应用中,...

    第章项目开发日志输出和事务管理功能.ppt

    - 声明式事务:在XML配置文件或注解中声明事务边界,例如使用@Transactional注解标记在方法上,Spring会自动管理事务的开始、提交或回滚。 - 编程式事务:通过TransactionTemplate或PlatformTransactionManager接口...

    Spring事务管理的方法

    ### Spring事务管理的方法 #### 一、引言 在企业级应用开发中,事务管理是一项至关重要的技术。Spring框架作为Java领域中一个非常流行...在实际项目开发中,可以根据具体的业务需求和技术栈选择合适的事务管理模式。

    spring mvc+hibernate实现事务管理(配置文件版)

    总结,本项目展示了如何在Spring MVC和Hibernate环境中实现事务管理,通过MyEclipse自动生成的包和配置文件,简化了开发流程。在实际应用中,这样的整合能够提供高效且易于维护的Web应用,同时,声明式事务管理极大...

    spring 事务配置的五种方法

    **概念介绍:** 使用 AOP(面向切面编程)的思想,通过定义一个事务管理拦截器来拦截特定的方法调用,实现事务的自动管理。 **配置示例:** ```xml &lt;!-- 配置事务管理器 --&gt; class="org.springframework.orm....

    Spring+Mybatis+MySql+Maven 简单的事务管理案例.rar

    总结来说,这个案例将展示如何在Spring中配置Mybatis和MySQL,以便在处理数据库操作时使用Spring的声明式事务管理。Maven将用于构建和管理整个项目,包括依赖的解决和项目的打包。通过学习这个案例,开发者可以深入...

    JAVA真实包装项目经验-二手车项目面试

    ### JAVA真实包装项目经验——二手车项目面试知识点...通过以上内容的整理和总结,可以清晰地了解到该项目的开发流程、技术选型、个人职责以及项目架构等方面的知识点,有助于面试者更好地准备相关的面试题目和场景。

    软件开发与项目管理-1期 KC02_课程案例_基于JSP的学生评优管理系统的设计与实现.doc

    【软件开发与项目管理】课程案例探讨了一个基于JSP的学生评优管理系统的设计与实现,旨在提升教育机构的管理效率和信息安全性。系统针对传统管理方式存在的问题,如手动记录信息的错误率高、效率低下、信息无法规范...

    MyBatis与spring的整合-添加事务-src.zip

    "MyBatis与Spring的整合-添加事务"的项目可能包含了一个示例,演示了如何在Spring环境中配置MyBatis并实现事务管理。通过这种方式,开发者可以利用MyBatis的简单易用和Spring的强大功能,构建高效且易于维护的Java...

    spring基于AOP实现事务

    总结一下,Spring基于AOP实现的事务管理通过TransactionProxyFactoryBean,结合声明式事务配置,能够提供一种高效且易于维护的事务解决方案。它允许我们在不修改业务逻辑的情况下,统一管理和控制事务,提升了代码的...

    Spring实现自动代理Demo

    在Spring框架中,自动代理是一种重要的特性,它允许我们在不修改原有代码的情况下,为bean添加额外的功能,如事务管理、AOP(面向切面编程)等。本篇将深入探讨如何利用Spring实现自动代理,特别是关注`...

    基于mongodb和网络爬虫的数据管理项目总结报告.doc

    【基于MongoDB和网络爬虫的数据管理项目总结】 在当今数据驱动的世界中,有效地管理和处理大量数据至关重要。MongoDB作为一种流行的NoSQL数据库,以其高效、灵活的非关系型数据存储能力,广泛应用于大数据管理和...

    spring-trasaction项目源码

    本文将通过对"spring-trasaction"项目的源码分析,深度探讨Spring事务管理的核心机制。 一、事务的基本概念 事务是数据库操作的基本单元,具有原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和...

    Spring整合JDBC实现转账业务-动态代理模式

    总结起来,通过Spring整合JDBC和动态代理模式,我们可以将复杂的事务管理从业务代码中解耦,提高代码的可读性和可维护性。同时,这种设计也遵循了单一职责原则,使得业务逻辑更加清晰,易于扩展和维护。在实际开发中...

    源码-自动点滴管理系统(.NET 3.5框架的WCF技术实现

    总结,自动点滴管理系统展示了WCF在.NET 3.5框架下的强大功能,通过学习此项目,开发者可以深入了解WCF的使用方法,为构建自己的分布式系统打下坚实基础。在实践中不断探索和优化,才能更好地发挥WCF的优势,构建出...

    spring事务配置详解

    总结来说,Spring的事务配置方式多样,可以根据项目需求选择合适的方式。声明式事务管理更推荐,因为它将事务逻辑与业务代码分离,提高了代码的可维护性。而代理机制的选择则取决于是否需要对事务进行特定的定制。

    spring代理实现项目

    总结,"spring代理实现项目"主要涉及到的是Spring的AOP特性,包括静态代理和动态代理的运用,以及如何通过代理模式来实现如事务管理等跨切面关注点。在项目中,我们可以通过阅读和分析源码,理解Spring如何根据不同...

    带事务的ssh框架源代码

    编程式事务管理需要在代码中显式地开始、提交、回滚事务,而声明式事务管理则更加灵活,只需在配置文件中声明事务属性,Spring会自动管理事务的生命周期。 在Spring 1.2版本中,Spring的事务管理主要是基于...

    spring事物的五种配制方法

    4. **第五种方法:使用@Transactional注解**:这种方式是最常用的声明式事务管理方式,通过在方法上添加@Transactional注解来自动管理事务。 - **特点**:简单易用,能够快速集成到现有项目中。 - **适用场景**:...

Global site tag (gtag.js) - Google Analytics