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 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
要在 Spring 应用中使用 AspectJ 注解, 必须在 classpath 下包含 AspectJ 类库: aopalliance.jar、aspectj.weaver.jar 和 spring-aspects.jar等jar包,文件已打包上传。
spring aspectj aspectrt.jar
NULL 博文链接:https://rain1109.iteye.com/blog/1838100
Spring AOP之基于AspectJ注解总结与案例 ,具体效果和过程看博文 http://blog.csdn.net/evankaka/article/details/45394409
主要对Spring AOP的相关概念和简单的静态代理、动态代理以及常见的几种AOP配置方式做总结学习。主要包括:1. AOP的常见概念 2. 静态代理 3. jdk动态代理 4. Aspectj and Aspectjweaver 5. **aop-config** 6. CGLIB ...
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注解配置实现日志管理的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
AspectJ shows its real power when combined with Spring. This new edition focuses on Spring-AspectJ integration, which is a major feature of Spring 2.5. Readers will find this edition immensely helpful...
以公司订单管理的模型为例(大部分步骤和业务了逻辑已经删除,只保存AOP注解这一部分)Spring AOP
Spring4 In Action-4.2-@AspectJ-切面,Spring4 In Action-4.2-@AspectJ-切面。Spring4 In Action-4.2-@AspectJ-切面
aspectj
Spring 使用AspectJ 实现 AOP之前置通知小例子,实际跑过,验证可信。
spring事务管理几种方式代码实例:涉及编程式事务,声明式事务之拦截器代理方式、AOP切面通知方式、AspectJ注解方式,通过不同方式实例代码展现,总结spring事务管理的一般规律,从宏观上加深理解spring事务管理特性...
NULL 博文链接:https://fei-xiang.iteye.com/blog/521637
这是进行spring-framework的AOP开发时需要的jar包,解压缩其中lib文件夹,lib文件夹中有4个重要的jar包:aspectjrt.jar,aspectjtools.jar,aspectjweaver.jar,org.aspectj.matcher.jar,解压缩后把这4个jar包导入...
Spring 使用AspectJ 实现 AOP(基于xml文件、基于注解)
spring和aspectj的aop实验,详细内容可以移步至博客:https://mp.csdn.net/postedit/97750888
NULL 博文链接:https://tuoxinquyu.iteye.com/blog/1465187