携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第9天,点击查看活动详情
哈喽,大家好!我是Why,一名在读学生,目前刚刚开始进入自己的编程学习生涯。虽然学习起步较晚,但我坚信做了才有0或1的可能。学了一段时间以后也是选择在掘金上分享自己的日常笔记,也希望能够在众多道友的大家庭中打成一片。 本文主要讲解java实现单链表,如果大家读后觉得有用的话,还请大家多多支持博主:欢迎 ❤️点赞👍、收藏⭐、留言💬 ✨✨✨个人主页:JinHuan
Spring-Aop
Spring的AOP实现底层就是对上面的动态代理的代码进行了封装,封装后我们只需要对需要关注的部分进行代码的编写,并通过配置的方式完成指定目标的方法增强。相关术语如下;
Target(目标对象)
要被增强的对象,一般是业务逻辑类的对象
Proxy(代理)
一个类被AOP织入增强后,就产生一个结果代理类。
Aspect(切面)
表示增强的功能,就是一些代码完成的,某个功能,非业务功能。是切入点和通知的结合。相当与之前的日志事务Aop
JointPoint(连接点)
所谓的连接点是指那些被拦截到的点。在Spring中,这些点指的是方法(一般是类中的业务方法),因为Spring只支持方法类型的连接点。
PointCut(切入点)
切入点指声明的一个或多个连接点的集合。通过切入点指定一组方法。被标记为final的方法是不能作为连接点与切入点的。因为最终的是不能被修改的,不能被增强的。
Advice(通知/增强)
所谓通知是指拦截到Jointpoint之后所要做的事情就是通知。通知定义了增强代码切入到目标代码的时间点,是目标方法执行之前执行,还是之后执行等。通知类型不同,切入时间不同。
通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知
切入点定义切入的位置,通知定义切入的时间。
Weaving(织入)
是指把增强应用到目标对象来创建新的代理对象的过程。spring采用动态代理织入,而Aspect采用编译期织入和类型装载期织入。
切面的三个关键因素:
1、切面的功能——切面能干啥
2、切面的执行位置——使用pointcut表示切面执行的位置
3、切面的执行时间——使用Advice表示时间,在目标方法之前还是之后执行