Spring 提供了事务的两种管理方式, 一种是编程式的,还有一种是声明式的.个人喜欢声明式的,灵活,简单.
先谈谈什么是事务,事务由哪些特性.事务时一组原子的操作,要么全部执行成功,或者在执行过程中只要有某一步执行失败,则整个事务必须回退(回滚). 事务的特性有原子性,一致性,隔离性和持久性.
好了其他的不必说了,直奔主题. Spring管理事务的时候默认的是使用的java的动态代理机制,当然还可以使用cglib, 需要加入cglib类包.Spring还封装了AspectJ的事务管理,是面向aop的一种管理机制, 在这里我先了解一下相关的几个概念: pointcut, advice, sdvisor.
一: 通知(advice)
当程序处理到某一点的时候需要执行的代码块或者调用的方法叫做advice.
二: 切入点(的集合) pointcut
调用特定代码块的切入点, 就是上面提到的某一点.呵呵
三: advisor:
通知和切入点的装配器.
具体配置如下:
<bean id="transactionManager" class="org.springframework.aop.hibernate3.HibernateTransactionManager">
<property name="sessionFacotry" ref="sessionFactory"></property>
</bean>
<tx:advice id="txAdvice" transaction-manager="transactionMananger">
<tx:attributes>
<tx:method name="save*"/>
<tx:method name="*" readonly="true"/>
</tx:atttributes>
</tx:advice>
声明一个事务管理器, 并且配置一个aop的通知, 这个通知适用于此事务管理器,只要是对于save打头的方法都会启用事务管理.但是基于哪些save打头的方法呢?
<aop:advisor advice-ref="txAdvice" pointcut="execution(public * *..*.service.*.*(..))"></aop:advisor>
利用aop的advosor将advice和pontcut装配起来. 将事务交给Spring管理.
分享到:
相关推荐
在Spring框架中,提供了多种事务管理方式,其中之一就是基于AspectJ的事务控制。本文将深入探讨如何在Spring中利用AspectJ实现事务控制。 首先,我们需要理解什么是AspectJ。AspectJ是一种面向切面编程(AOP)的...
Spring AOP的AspectJ支持jar包; 包括: com.springsource.net.sf.cglib-2.2.0.jar com.srpingsource.org.aopalliance-1.0.0.jar com.srpingsource.org.aspectj.weaver-1.68.RELEASE.jar
在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(面向切面编程)则是其核心特性之一,用于实现横切关注点的模块化,如日志、事务管理等。本实例将带你深入理解并实践Spring AOP与@AspectJ的结合...
《Spring AOP与AspectJ深度解析》 在Java开发领域,Spring框架以其强大的功能和灵活性深受开发者喜爱。其中,Spring的面向切面编程(AOP)特性极大地简化了代码的维护和扩展。AspectJ是Spring AOP的重要组成部分,...
AspectJ是AOP领域的一个强大工具,它扩展了Java语言,允许开发者创建所谓的"切面",来封装横切关注点,如日志、事务管理等,从而使代码更清晰、更模块化。本文将深入探讨如何在Spring框架中集成AspectJ,以及如何...
在IT行业中,Spring框架是Java企业级应用开发的首选,而Spring AOP(面向切面编程)则是其重要组成部分,它允许我们分离关注点,尤其是跨切面的系统级服务,如日志、事务管理等。AspectJ是Spring AOP支持的一种强大...
**Spring AOP与AspectJ详解** 在现代软件开发中,面向切面编程(Aspect-Oriented Programming,简称AOP)是一种强大的设计模式,它允许我们分离关注点,将横切关注点(如日志、事务管理、权限控制等)与核心业务...
### Spring事务与数据库操作 #### 一、Spring的声明式事务管理 在现代软件开发中,事务处理是非常关键的一部分,特别是在涉及多个数据操作时。Spring框架提供了强大的事务管理能力,可以方便地集成到应用程序中。...
要在 Spring 应用中使用 AspectJ 注解, 必须在 classpath 下包含 AspectJ 类库: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jar等jar包,文件已打包上传。
这篇博客“Spring AOP + AspectJ in XML配置示例”旨在指导开发者如何在XML配置中实现Spring AOP和AspectJ的结合。 首先,我们需要理解AOP的基本概念。AOP通过将关注点(如日志、事务管理)与业务逻辑分离,提高了...
标题"spring和aspectj的aop实验"表明我们将探讨如何在Spring中使用AspectJ进行AOP实践。这通常涉及到创建切面、定义通知、配置织入策略以及测试其效果。 1. **什么是AOP** AOP的核心概念是切面(Aspect),它封装...
在Spring框架中,当使用AspectJ进行事务管理时,AspectJ Weaver会动态地将事务相关的切面插入到目标类中,使得事务处理变得透明且无侵入。 Spring框架的事务管理是其核心特性之一,它提供了声明式和编程式两种事务...
8. **类型匹配(Type Matching)**:AspectJ的强项之一是类型匹配能力,它允许你基于类或接口来定义切入点,而不仅仅是方法签名,这比Spring AOP的基于方法签名的切入点更灵活。 9. **注解驱动(Annotation-Based)...
spring5基于aspectj实现aop操作所需jar包 com.springsource.net.sf.cglib-2.2.0.jar com.springsource.org.aopalliance-1.0.ar com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar spring-aspects-5.2.6....
在Spring框架中,AOP(面向切面编程)是一种强大的设计模式,它允许开发者定义“切面”,这些切面封装了关注点,如日志、事务管理或性能度量,从而将它们与业务逻辑分离。AspectJ是Java平台的一个开源项目,提供了...
Spring 框架是Java开发中的一个核心组件,它提供了许多功能,其中之一就是面向切面编程(AOP)。AOP是一种编程范式,允许开发者将关注点从业务逻辑中分离出来,比如日志记录、事务管理等。在Spring中,我们可以使用...
在Spring框架中,AspectJ是一种强大的面向切面编程(AOP)工具,它允许开发者定义“切面”——即跨越多个对象的行为或属性。这些切面可以用来封装那些分散在...理解并熟练运用AOP是提升Spring应用开发能力的关键之一。
而AspectJ是Java平台上的一个开源项目,提供了一种强大的、类型安全的AOP解决方案,它能够与Spring框架完美结合,增强Spring的AOP功能。 首先,我们需要理解AOP的核心概念。切面(Aspect)是关注点的模块化,这些...
**Spring AOP 概念理解** Spring AOP(Aspect Oriented Programming,面向切面编程)是Spring框架的一个重要组成部分,它允许我们通过...理解和熟练运用Spring AOP及其@AspectJ注解是每个Spring开发者必备的技能之一。
Spring Aop之AspectJ注解配置实现日志管理的方法 Spring Aop是基于AspectJ实现的面向切面编程(AOP),它提供了一个灵活的方式来实现日志管理。通过使用AspectJ注解,可以轻松地实现日志记录、性能监控、安全检查...