城市直播房产教育博客汽车
快传网
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

详解SpringAOP及事务配置三种模式

12月28日 老巫婆投稿
  SpringAOP简述
  SpringAOP的设计思想,就是通过动态代理,在运行期对需要使用的业务逻辑方法进行增强。
  使用场景如:日志打印、权限、事务控制等。
  默认情况下,Spring会根据被代理的对象是否实现接口来选择使用JDK还是CGLIB。当被代理对象没有实现接口时,Spring会选择CGLIB。当实现了接口,Spring会选择JDK官方的代理技术,不过我们也可以通过配置的方式,让Spring强制使用CGLIB。
  配置方式有两种:使aop:config标签配置使aop:aspectjautoproxy标签配置aop:aspectjautoproxySpring中AOP的实现
  2。1XML模式引入依赖(如果项目里没有的话)dependencygroupIdorg。springframeworkgroupIdspringaopartifactIdversion5。1。12。RELEASEversiondependencydependencygroupIdorg。aspectjgroupIdaspectjweaverartifactIdversion1。9。4versiondependencyxml配置
  主要看下面的aop部分?xmlversion1。0encodingUTF8?beansxmlnshttp:www。springframework。orgschemabeansxmlns:xsihttp:www。w3。org2001XMLSchemainstancexmlns:contexthttp:www。springframework。orgschemacontextxmlns:aophttp:www。springframework。orgschemaaopxmlns:txhttp:www。springframework。orgschematxxsi:schemaLocationhttp:www。springframework。orgschemabeanshttps:www。springframework。orgschemabeansspringbeans。xsdhttp:www。springframework。orgschemacontexthttps:www。springframework。orgschemacontextspringcontext。xsdhttp:www。springframework。orgschematxhttps:www。springframework。orgschematxspringtx。xsdhttp:www。springframework。orgschemaaophttps:www。springframework。orgschemaaopspringaop。xsd
  xml相关切面配置beanidlogUtilclasscom。mmc。ioc。utils。LogUtilbean!aop的配置!aop的配置!配置切面aop:pointcut!前置通知aop:before!后置通知,无论业务是否正常执行aop:after!正常执行aop:afterreturning!异常执行aop:afterthrowing!环绕通知!aop:aroundaop:aspectaop:config
  环绕通知可以实现上面的4种通知,并且可以控制业务方法是否执行。通过如下代码控制:proceedingJoinPoint。proceed(proceedingJoinPoint。getArgs());publicclassLogUtil{publicvoidprintLog(){System。out。println(打印日志);}publicvoidafter(){System。out。println(后日志打印,不管业务是否正常);}publicvoidafterReturn(){System。out。println(正常执行完毕打印日志);}publicvoidafterException(){System。out。println(异常执行打印日志);}publicvoidaround(ProceedingJoinPointproceedingJoinPoint){System。out。println(环绕前置);try{ObjectresultproceedingJoinPoint。proceed(proceedingJoinPoint。getArgs());System。out。println(环绕正常执行);}catch(Throwablethrowable){throwable。printStackTrace();System。out。println(环绕异常执行);}}}切入点表达式
  举例:publicvoidcom。lagou。service。impl。TransferServiceImpl。updateAccountByCardNo(com。lagou。pojo。Account)访问修饰符可以省略,也就是public可以不用写voidcom。mmc。ioc。service。impl。TransferServiceImpl。transfer(String,String,int)返回值可以用代替,表示返回任意值com。mmc。ioc。service。impl。TransferServiceImpl。transfer(String,String,int)包名可以使用。。表示当前包及其子包com。。TransferServiceImpl。transfer(String,String,int)类名和方法名,都可以使用表示任意类,任意方法com。。(String,String,int))参数列表,如果是基本类型可以直接写名称,如int。引用类型必须用全限定名称参数列表可以使用代替任意参数类型,但必须有参数com。。()参数列表可以使用。。代替任意参数类型,有无参数均可com。。()全通配方式:。。。(。。)
  2。2XML注解模式XML中开启Spring对注解AOP的支持!开启spring对注解aop的持注解配置ComponentAspectpublicclassLogUtil{Pointcut(execution(com。mmc。ioc。service。impl。TransferServiceImpl。transfer(。。)))publicvoidpointcut(){}Before(pointcut())publicvoidprintLog(){System。out。println(打印日志);}After(pointcut())publicvoidafter(){System。out。println(后日志打印,不管业务是否正常);}AfterReturning(pointcut())publicvoidafterReturn(){System。out。println(正常执行完毕打印日志);}AfterThrowing(pointcut())publicvoidafterException(){System。out。println(异常执行打印日志);}Around(pointcut())publicvoidaround(ProceedingJoinPointproceedingJoinPoint){System。out。println(环绕前置);try{ObjectresultproceedingJoinPoint。proceed(proceedingJoinPoint。getArgs());System。out。println(环绕正常执行);}catch(Throwablethrowable){throwable。printStackTrace();System。out。println(环绕异常执行);}}}
  2。3纯注解模式
  只需要用注解EnableAspectJAutoProxy替换掉Spring事务配置
  也分为3种模式
  3。1XML模式引入pom依赖dependencygroupIdorg。springframeworkgroupIdspringcontextartifactIdversion5。1。12。RELEASEversiondependencydependencygroupIdorg。aspectjgroupIdaspectjweaverartifactIdversion1。9。4versiondependencydependencygroupIdorg。springframeworkgroupIdspringjdbcartifactIdversion5。1。12。RELEASEversiondependencydependencygroupIdorg。springframeworkgroupIdspringtxartifactIdversion5。1。12。RELEASEversiondependencyxml配置beanidtransactionManagerclassorg。springframework。jdbc。datasource。DataSourceTransactionManagerconstructorargnamedataSourcerefdataSourceconstructorargbeantx:adviceidtxAdicetransactionmanagertransactionManager!定制事务细节tx:attributestx:methodnamereadonlyfalsepropagationREQUIREDisolationDEFAULTtx:methodnamequeryreadonlytruepropagationSUPPORTStx:methodtx:attributestx:advice!事务衡器逻辑aop:advisoraop:config
  3。2基于XML注解xml配置:!spring声明式事务配置beanidtransactionManagerclassorg。springframework。jdbc。datasource。DataSourceTransactionManagerconstructorargnamedataSourcerefdataSourceconstructorargbeantx:annotationdriventransactionmanagertransactionManagertx:annotationdriven在类或方法上面添加Transactional注解Transactional(readOnlytrue,propagationPropagation。SUPPORTS)
  3。3纯注解
  用EnableTransactionManagement注解替换掉tx:annotationdriventransactionmanagertransactionManager
  即可
  书山有路勤为径,学海无涯苦作舟
  原文链接:https:www。cnblogs。comjavammcp15569761。html
投诉 评论 转载

潮评不下载就不给看,流量岂能靠绑架?想要浏览链接,却遭遇不下载APP就不给看;愿意下载还不行,APP又要求获取定位、摄像和录音等权限近日,针对部分网站在用户浏览页面信息时强制要求下载APP等问题,工信部提出三项要……现在能被证实的UFO发现有哪些?一般UFO事件都有一个共同点,那就是它们几乎都没有得到权威机构的认同,因此人们对这些都是持着半信半疑的态度。然而几乎没有并不是代表一定没有,今天我们就来讲一个可信度较高的UFO……人脸识别时一定要穿上衣服,这是来自内部人员的忠告人脸识别时一定要穿上衣服,这是来自内部人员的忠告。最近,有一名技术公司的内部人事曝出了一个行业内幕,并引来了众多网友的激烈讨论。这位内部人事劝告用户在使用人脸识别的……泡脚也有新体验,HITH智能足浴器T1实力种草了当下生活节奏的加快,泡脚也成为了一件令人放松的方式,热热的水泡加上按摩也是非常惬意的,上班的疲惫一扫而光。在市面上林林总总的足浴盆中,HITH智能足浴器就得到了不少人的青睐。最……中国做SaaS为什么这么难?以下文章来源于阿朱说,作者吕建伟导读中国做SaaS难在哪儿?且看下文六点分析。文章来源本文作者:吕建伟(网名阿朱),用友网络副总裁、用友研究院院长,著有……刚柔并济,柔性制造需要齐头并进受新一代产业革命影响,各行各业都在发生着巨变,这种变化在制造业表现得尤为突出,大批量生产已无法满足市场需求,小批量、多样化逐渐常态化。为应对这一市场现状,柔性制造成为制造业未来……我国主导的ISO首个生物多样性标准提案立项本报讯(记者徐风)3月10日,由中国标准化研究院生物技术研究团队主导提出的《生物多样性术语第1部分:通用术语》标准提案在国际标准化组织(ISO)生物多样性技术委员会(ISOTC……详解SpringAOP及事务配置三种模式SpringAOP简述SpringAOP的设计思想,就是通过动态代理,在运行期对需要使用的业务逻辑方法进行增强。使用场景如:日志打印、权限、事务控制等。默认情……手机系统应用软件更新升级的那些事,你知道吗?大家好!今天来说一下手机系统以及应用软件更新升级的那些事,在网络信息高度发达的今天,手机成为了我们人手必备的,如今不带手机出门,感觉寸步难行。手机系统升级OTA升级……助听器戴起来有呼呼声怎么办?1。耳塞或是定制式助听器没有佩戴好,没有密封导致的啸叫;2。检查外壳是否有裂痕,破损;3。检查声音是否开得过大;4。是否佩戴初期不适应,听到的声音多了不习惯,……摆脱很苦没前途标签,制造业成为互联网人转行最想去的领域2022年猝不及防的疫情反扑,可能让这一个金三银四稍显冷清。最为瞩目的莫过于曾经贵为就业顶级选择的互联网领域似乎风头不在,今年3月腾讯阿里等大企业同期裁员,再次令从业者胆寒。这……Spring事件监听机制源码解析Spring事件监听器使用1。Spring事件监听体系包括三个组件:事件、事件监听器,事件广播器。事件:定义事件类型和事件源,需要继承ApplicationEven……
人类文明将以什么样的方式登上它下一个划时代的台阶?汽车行业总结2021之供应链篇iPhone只要验机报告全绿就是原装机?那可不一定你最喜欢HarmonyOS2的哪些功能?这3大最受欢迎的功能Luminar宣布收购FreedomPhotonics激光雷荣耀x20简评芯片和快充升级版的x10?中端机新的选择?我突然间有个可怕的想法,支付宝微信如果弄个什么币那还得了充电基础设施服务能力将加速升级今天为大家找到了两款极其相似的手机,华为nova8和荣耀v4国货当自强AYANEONEXT掌机试玩如果送你一台华为的最新款手机,你会放弃掉你现在的苹果手机吗?辽宁女性人才科技创新大赛落幕
施柏宇女友是谁施柏宇被爆同性恋是怎么回事盗窃罪什么犯罪类型故意伤害行政责任年龄是多少?提高性功能促进性生活和谐游公园长大后才明白,那个能拿命替皇阿玛挡刀的紫薇,为何不见了?春天的雨选择时间粉刷过的记忆邀请函够用造句用够用造句大全门被反锁了怎么开

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁