首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
SAAS
ToB门户
了解全球最新的ToB事件
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
微博
Follow
记录
Doing
博客
Blog
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
排行榜
Ranklist
相册
Album
应用中心
qidao123.com ToB IT社区-企服评测·应用市场
»
论坛
›
软件与程序人生
›
DevOps与敏捷开发
›
Spring之AOP
返回列表
发新帖
Spring之AOP
[复制链接]
发表于 2025-9-14 06:30:03
|
显示全部楼层
|
阅读模式
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要
登录
才可以下载或查看,没有账号?
立即注册
×
什么是AOP
AOP:Aspect 0riented Programming(面向切面编程、面向方面编程),可简朴明白为就是面向特定方法编程。
场景:案例中部门业务方法运行较慢,定位实行耗时较长的接口,此时需要统计每一个业务方法的
实行耗时。
上风:
1.减少重复
代码
2.
代码
无侵入
3.进步开发服从
4.维护方便
AOP焦点概念
毗连点:JoinPoint,可以被AOP控制的方法(暗含方法实行时的相干信息)
关照:Advice,指那些重复的逻辑,也就是共性
功能
(终极体现为一个方法)
切入点
ointCut,匹配毗连点的条件,关照仅会在切入点方法实行时被应用
切面:Aspect,形貌关照与切入点的对应关系(关照+切入点)
目标对象:Target,关照所应用的对象
AOP实行流程
关照范例
根据关照方法实行时机的差别,将关照范例分为以下常见的五类:
@Around:围绕关照,此注解标注的关照方法在目标方法前、后都被实行
@Before:前置关照,此注解标注的关照方法在目标方法前被实行
@After :后置关照,此注解标注的关照方法在目标方法后被实行,无论是否有非常都会实行返回后关照
@AfterReturning:此注解标注的关照方法在目标方法后被实行,有非常不会实行
@AfterThrowing :非常后关照,此注解标注的关照方法发生非常后实行
注意1:
@Around围绕关照需要自己调用 Proceeding]oinPoint.proceed()来让原始方法实行,其他关照不需要思量目标方法实行
注意2:
@Around围绕关照方法的返回值,必须指定为0bject,来吸收原始方法的返回值。
@Pointcut
该注解的作用是将公共的切点表达式抽取出来,需要用到时引用该切点表达式即可
关照序次
当有多个切面的切入点都匹配到了目标方法,目标方法运行时,多个关照方法都会被实行。
实行序次:
- 差别切面类中,默认按照切面类的类名字母排序目标
- 方法前的关照方法:字母排名靠前的先实行目标
- 方法后的关照方法:字母排名靠前的后实行
- 用 @0rder(数字)加在切面类上来控制序次
- 目标方法前的关照方法:数字小的先实行
- 目标方法后的关照方法:数字小的后实行
切入点表达式
先容:形貌切入点方法的一种表达式。
作用:用来决定项目中的哪些方法需要参加关照
常见情势:
1.execution(.):根据方法的签名来匹配
2.@annotation(.):根据注解匹配
- 紧张根据方法的返回值、包名、类名、方法名、方法参数等信息来匹配,语法为:
- 其中带 ?的体现可以省略的部门
1.访问修饰符:可省略(好比:public、protected)
2.包名.类名: 可省略
3. throws 非常:可省略(注意是方法上声明抛出的非常,不是实际抛出的非常)
- 可以使用通配符形貌切入点
*:单个独立的任意符号,可以通配任意返回值、包名、类名、方法名、任意范例的一个参数,也可以通配包、类、方法名的一部门
..:多个一连的任意符号,可以通配任意层级的包,或任意范例、任意个数的参数
注意1:
根据业务需要,可以使用 且(&&)、或()、非(!)来组合比力复杂的切入点表达式
切入点表达式-@annotation
@annotation 切入点表达式,用于匹配标识有特定注解的方法
回复
使用道具
举报
返回列表
浏览过的版块
Java
数据仓库与分析
Mysql
物联网
分布式数据库
Oracle
SQL-Server
.Net
尚未崩坏
+ 我要发帖
登录后关闭弹窗
登录参与点评抽奖 加入IT实名职场社区
去登录
微信订阅号
微信服务号
微信客服(加群)
H5
小程序
快速回复
返回顶部
返回列表