springboot中aop的应用记录-尊龙官方平台

springboot中aop的应用记录

el/2024/3/25 18:40:16

aop目的: 
面向切面编程(aspect-oriented programming,aop)主要实现的目的是针对业务处理过程中的切面进行提取,诸如日志、事务管理和安全这样的系统服务,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。


spring aop术语:

1.连接点(joinpoint) 
程序执行的某个特定位置:如类某个方法调用前、调用后、方法抛出异常后。一个类或一段程序代码拥有一些具有边界性质的特定点,这些点中的特定点就称为“连接点”。spring仅支持方法的连接点,即仅能在方法调用前、方法调用后、方法抛出异常时以及方法调用前后这些程序执行点织入通知。连接点由两个信息确定:第一是用方法表示的程序执行点;第二是用相对点表示的方位。连接点是在应用执行过程中能够插入切面的一个点。

 

2.切点(pointcut) 
aop通过“切点”定位特定的连接点。切点和连接点不是一对一的关系,一个切点可以匹配多个连接点。在spring中,切点通过org.springframework.aop.pointcut接口进行描述,它使用类和方法作为连接点的查询条件,spring aop的规则解析引擎负责切点所设定的查询条件,找到对应的连接点。其实确切地说,不能称之为查询连接点,因为连接点是方法执行前、执行后等包括方位信息的具体程序执行点,而切点只定位到某个方法上,所以如果希望定位到具体连接点上,还需要提供方位信息。

 

3.通知(advice) 
切面的工作被称为通知。是织入到目标类连接点上的一段程序代码。 
spring切面可以应用5种类型的通知: 
- 前置通知(before):在目标方法被调用之前调用通知功能; 
-后置通知(after):在目标方法完成之后调用通知,此时不会关心方 法的输出是什么; 
-返回通知(after-returning):在目标方法成功执行之后调用通知; 
-异常通知(after-throwing):在目标方法抛出异常后调用通知; 
-环绕通知(around):通知包裹了被通知的方法,在被通知的方法调 用之前和调用之后执行自定义的行为。

 

4.引介(introduction) 
引入允许我们向现有的类添加新方法或属性,是一种特殊的通知。这样,即使一个业务类原本没有实现某个接口,通过aop的引介功能,我们可以动态地为该业务类添加接口的实现逻辑,让业务类成为这个接口的实现类。

5.切面(aspect) 
切面由切点和通知(引介)组成,它既包括了横切逻辑的定义,也包括了连接点的定义。

 

6.织入(weaving) 
织入是把切面应用到目标对象并创建新的代理对象的过程。 
aop有三种织入的方式: 
a、编译期:切面在目标类编译时被织入。这种方式需要特殊的编译器。aspectj的织入编译器就是以这种方式织入切面的。 
b、类加载期:切面在目标类加载到jvm时被织入。这种方式需要特殊的类加载器(classloader),它可以在目标类被引入应用之前增 
强该目标类的字节码。aspectj 5的加载时织入(load-time weaving,ltw)就支持以这种方式织入切面。 


http://www.ngui.cc/el/5127581.html

相关文章

could not resolve view with name 'xxx' in servlet with name dispatcherservlet

springboot 项目,启动后访问网页,控制台输出: javax.servlet.servletexception: could not resolve view with name loginback in servlet with name dispatcherservlet 这是因为模板文件相关配置不正确,导致找不到模板文件所致…

3年前离职,写下“世界那么大,我想去看看”的女教师,现在怎么样了?

“世界那么大我想去看看” 那封红极一时的辞职信 想必大家都还记得吧 2015年4月13日 河南实验中学教师顾少强 留下一封辞职信 转身离开那座生活了将近35年的城市 寥寥10字主体, 这封辞职信不仅一夜之间在网络走红 被网友誉为“史上最具情怀的辞职信” 收藏于实验中学…

[漫画]最该富养的不是孩子,是妻子

文字来源:入江之鲸(rujiangzhijing001) 漫画来源:爆漫画(baomanhua233) 有这样一幅漫画:一个妻子背着两个孩子和丈夫,步履维艰满头大汗,她哭丧着脸,而背上的丈…

开机显示error1962:no operating system found.press any key to repeat boot sequence.

在使用大白菜pe的系统安装工具安装完windows7,重新启动电脑后,出现以下错误: when you start windows 7: "the windows boot configuration data file is missing required information" 这是之前安装系统时遇到的问题࿰…

refused to load the script because it violates the following content security policy directive: scr

refused to load the script because it violates the following content security policy directive: "script-src self 最近在使用chrome 54 版本编辑微信订阅号素材的时候,发现很多图片之类 的资源显示不出来,新浪微博个人中心尊龙官方平台主页也是完全没有样…

《在线》告诉你,“大数据”这个名字叫错了

最近刚读完了王坚博士的书《在线》,书中对几个词语的叫法理解提出新的见解,这里分享给大家。 1、“大数据”这个名字叫错了,它没有反映出数据最本质的东西。 2、“云计算”有歧义 3、不是“去ioe”,而是计算去掉了计算机 4、不是物…

有事请直说,别问“在吗”

网络聊天的时候,qq、微信、钉钉之类的,你可能经常遇到这样的情况,有的小伙伴抛出一句: 在吗? 或 有会java的吗? 或 有懂php的吗? 或 有用过xxx的吗? 没有人回复他,然后就…

提前祝小伙伴们六一节快乐

有一个话题“ 没有游戏机、手机、电脑的童年,我们都玩什么? ” 点击“阅读原文”去参与吧! 看看哪些是你玩过的,哪些没玩过。 还有哪些我没有提到的。

遇见你,如此美丽

遇见你,如此美丽 不管是在料峭的春天 还是在炎热的夏天 或是凉爽的秋天 亦或是严寒的冬天 遇见你都是如此的美丽……

自信不傻,但有没有智慧呢?

每个人都有潜在的杰出的才能,只不过有时自己和别人没有发现而已,知道自己在某个方面很优越,不仅使你充满自信,而且会让你拥有一块立身之地,不要丢掉自己的兴趣和长项,否则你会处处不如意,以自己…
网站地图