spring 事务怎么用 在啥情况下使用?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了spring 事务怎么用 在啥情况下使用?相关的知识,希望对你有一定的参考价值。
参考技术A 一般是在Spring的配置文件中配置的。因为Spring比较灵活,所以具体配置的方式多种多样。给你个地址可以看一下,http://www.chineselinuxuniversity.net/articles/36256.shtml
Spring配置的关键处在于:
这段配置意思是说,在com.raising.system.modules.*.impl.service包下的所有类,
凡是以save、add、insert、delete、update
开头的public方法,全部纳入Spring事务管理。并且在方法抛出com.raising.framework.exception.ServiceException异常的时候,进行事务回滚。异常可以自定义。
get、find、select开头的方法不使用事务。
明白了Spring事务的关键点,其他都很简单了。
Spring AOP 一般用在啥场景中
AOP,在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待,Struts2的拦截器设计就是基于AOP的思想,是个比较经典的例子。
在不改变原有的逻辑的基础上,增加一些额外的功能。代理也是这个功能,读写分离也能用aop来做。
扩展资料:
AOP/OOP区分
AOP、OOP在字面上虽然非常类似,但却是面向不同领域的两种设计思想。OOP(面向对象编程)针对业务处理过程的实体及其属性和行为进行抽象封装,以获得更加清晰高效的逻辑单元划分。
而AOP则是针对业务处理过程中的切面进行提取,它所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。这两种设计思想在目标上有着本质的差异。
参考资料来源:百度百科-AOP (面向切面编程)
参考技术A AOP是Aspect Oriented Programing的简称,面向切面编程。AOP适合于那些具有横切逻辑的应用:如性能监测,访问控制,事务管理、缓存、对象池管理以及日志记录。AOP将这些分散在各个业务逻辑中的代码通过横向切割的方式抽取到一个独立的模块中。AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP 框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称为编译时增强;而动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。代理对象的方法 = 增强处理 + 被代理对象的方法
Spring AOP 则采用运行时生成 AOP 代理类,因此无需使用特定编译器进行处理。由于 Spring AOP 需要在每次运行时生成 AOP 代理,因此性能略差一些。
AOP使用场景
AOP用来封装横切关注点,具体可以在下面的场景中使用
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging 调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence 持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务 参考技术B 我们主要用来事务控制,比如运行日志,权限控制等,除此以为,aop在模块的耦合,及管理,功能升级方面多有很好的用途 参考技术C 对一个方法或功能做 前置处理或后置处理
以上是关于spring 事务怎么用 在啥情况下使用?的主要内容,如果未能解决你的问题,请参考以下文章
spring和mybatis整合怎么将事务在service层关闭?使用xml配置