JavaWeb后端开辟总结(3)

[复制链接]
发表于 2026-1-26 15:08:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
AOP底子

AOP概述

起首我们要知道AOP是什么?
看下图

个人分析:
AOP叫做面向切面编程,但是现实上就是面向方法编程
图中下面一部分是一个AOP的案例
AOP快速入门案例代码实现

案例:测出业务中各个业务方法所需的实行时间
如果我们一个个对每个方法举行改代码,如许太过繁琐,然后我们就引入进来了AOP
下面是对这个案例的代码实现

第一步:我们要引入springAOP的依赖
第二步:编写AOP的代码
代码分析:
@Aspect这个注解是意味,这个类为有关AOP的类,也就是切面类,待会会先容概念
然年@Around注解,以及背面一大串,在下面已经表明
之后的一些代码就是盘算运行时间的逻辑代码,无需多先容
AOP核心概念

如下图

个人明确:
有些概念已经先容的非常清晰,我就来分析一下不太清晰的概念
切入点和切入点表达式
这两个着实是精密相连的,切入点表达式表达出来的正是切入点
更平常的来说就是,这些可调用的毗连点,切入点表达式表达出来的是毗连点的此中一些,而满意切入点表达式的毗连点,我们又叫做切入点
AOP实行次序


假设我们现在是在测试list方法的运行时间,左上角是我们界说的切面类,而切入点表达式(不是图中的切入点表达式,我们只是假设)指向的list方法,那么list方法我们就叫做它为切入点
然后这个list地点的类的对象为目标对象
左下角接纳依赖注入的方法注入的并不是目标对象,如果是如许的话,AOP就白写了
AOP最本质上是基于动态署理来实现的
以是目标对象会自动加载为右下角的谁人署理对象,而署理对象里的list方法是加强后的方法
也就是可以或许得到运行时间的list方法
全部左下角注入的对象是署理对象
然后左下角利用署理对象调用的lst方法自然也是加强后的list方法了,如许就完成了案例要求
以上就是这个案例AOP的实行次序
AOP进阶

关照范例

关照分为很多范例,以下图片为关照范例的先容,内容比力详细

着实看笔墨意思就可以或许明确各个范例的区别
如果照旧看不懂,可以参考下面图片中的代码,包罗了全部的关照范例的测试




以上就是全部代码
然后我们要引入一个解释
由于有些时间切入点的表达式不绝在重复,以是我们可以利用一个注解提取出来,请看下图

关照次序

这个关照次序,就很简单了,相识以下就是了
看下图

切入点表达式

我们之前都是相识什么是切入点表达式
接下来我们要相识切入点表达式是怎样写的
切入点表达式的写法有两种情势,如下图

execution

下面图中第一行先容的式它的语法布局
图中打了?的意思是,?之前的一个内容可以省略,注意我说的是前一个,而不是多个
但是我们一样平常不省略,直接写出它的完备格式来
下图下面,还先容了表达式中常用的通配符,如许就可以大大简短了代码长度
这个非常告急,看下图的表明我们应该也能明确怎么用

下图是一些誊写规范的发起,可看可不看,反正就是只管少省略

@annotation

当我们利用execution来写表达式的时间难免会碰到一个表达式写不出来,必要两个表达式来写的,如下图

为了办理这个题目,我们就引入了这个@annotation表达式
这个切入点表达式怎样来用呢?
第一步:创建一个annotation的类(不是平常的类和接口)
个人感觉这就像是自己界说以一个注解,
到背面就可以看出来
,如下图

第二步:誊写该类的一些解释

对代码举行分析:
第一行的注解表现的是,在运行时见效
第二行注解表现的是作用的目标是方法
由于这个类就是起一个标记作用,以是不消再写多余的代码
第三步:给切点类做上标记
如下图的MyLog这个注解,这个是我们上面自己界说的类的名字
以是我个人感觉上面就像是自己界说了一个注解

末了一步:写切入点表达式
凡是被做了标记的,就都行

毗连点

我们刚开始的AOP入门是测试方法的运行时间,但是我们偶尔间并不是这个要求
而是获取毗连点的某个信息
接下来就是怎样获取毗连点方法的信息的方法
起首这个是要分关照范例的,分为两个部分,每个部分获取信息的方法略有差别
如下图有详细先容
下图为@Around关照范例

下图为其他关照范例

然后下图便是我们怎样详细实当代码

记着返回值改一下,不是null


回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表