时间:2021-05-19
切面:Aspect
切面=切入点+通知。在老的spring版本中通常用xml配置,现在通常是一个类带上@Aspect注解。切面负责将 横切逻辑(通知) 编织 到指定的连接点中。
目标对象:Target
将要被增强的对象。
连接点:JoinPoint
可以被拦截到的程序执行点,在spring中就是类中的方法。
切入点:PointCut
需要执行拦截的方法,也就是具体实施了横切逻辑的方法。切入点的规则在spring中通过AspectJ pointcut expression language来描述。
切入点与连接点的区别:连接点是所有可以被"切"的点;切入点是真正要切的点。
通知:Advice
针对切入点的横切逻辑,包含“around”、“before”和“after”等不同类型的通知。
通知的作用点如其命名:
还有一些异常处理的通知,这里不一一举例
织入:Weaving
将切面和目标对象连接起来,创建代理对象的过程。spring中用的是动态代理。假如目标对象有接口,使用jdk动态代理;否则使用cglib动态代理。
说了这么多概念,看看代码实现可能会使读者理解的更深刻一些,这里简单写一个通过注解增强方法的AOP-Demo。
首先是切面类:
注解:
package com.example.demo.aop.anno;import java.lang.annotation.*;/** * @author Fcb * @date 2020/6/20 * @description */@Documented@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.METHOD, ElementType.TYPE})public @interface MyLog {}目标类:
package com.example.demo.aop.target;import com.example.demo.aop.anno.MyLog;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;/** * @author Fcb * @date 2020/6/20 * @description */@RestControllerpublic class MockController { @RequestMapping("/hello") @MyLog public String helloAop(@RequestParam String key) { System.out.println("do something..."); return "hello world"; }}最后是测试类:
package com.example.demo.aop.target;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;/** * @author Fcb * @date 2020/6/20 * @description */@SpringBootTestclass MockControllerTest { @Autowired MockController mockController; @Test void helloAop() { mockController.helloAop("aop"); }}控制台结果:
around advice : aop
before advice : aop
do something...
after advice : aop
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
基本原理-容器和bean在Spring中,那些组成你应用程序的主体(backbone)及由SpringIoC容器所管理的对象,被称之为bean。简单地讲,bea
淘宝直通车基本基本原理与基本实际操作初学者进入车内以前是务必要掌握的淘宝直通车基本原理!此次共享內容分成2个內容专业知识:1、淘宝直通车基本基本原理2、淘宝直通
无论非法营运或是白车,也无论是啥多么的牛13的提升方式,他全是在淘宝直通车基本原理的基本以上的一些方法,便是有效运用好啦这种基本原理。现阶段淘宝直通车的基本原理
超级推荐是信息流广告强烈推荐,是“货请人”。如今许多店家都是在用超级推荐,琅琊今日关键共享超级推荐的标识基本原理及主题活动推广方案。一、超级推荐人群标签基本原理
超级推荐是信息流广告强烈推荐,是“货请人”。如今许多店家都是在用超级推荐,今日关键共享超级推荐的标识基本原理及主题活动推广方案。01超级推荐人群标签基本原理超级