关于AOP 的切点的作用范围详解(一)
简述
AOP,即一种切面编程,可对目标起到一定的增强作用,AOP可用于日志记录,事务操作等;AOP的作用目标颗粒度是方法,可以注解@Pointcut 作切点定义,今天就讲一下注解值中使用execution方式的一些注意点。(阅读本文1分钟)
实践
1、引入依赖:
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.5.3</version>
</dependency>
2、execution 可作用在包名、类名、模糊方法上,请看下面示例:
@Slf4j
@Aspect
@Component
public class LogAspect {//作用在指定类上@Pointcut(value = "execution(public * com.demo.ypk.mybatisplus.controller.TestController.*(..))")public void log() {}/*** 环绕通知* @param joinPoint* @return*/@Around(value = "log()")public Object around(ProceedingJoinPoint joinPoint) throws Throwable {log.info("------------------打印入参-----------------");log.info(new ObjectMapper().writeValueAsString(joinPoint.getArgs()));return joinPoint.proceed();}
}
启动项目,请求接口
http://localhost:8080/get?name=%E5%A5%A5%E6%9C%AF%E5%A4%A7%E5%B8%88%E5%A4%9A&age=34
3、接口上变化一下,在接口方法中再调用一个public方法,按照execution切点的定义是可作用在TestController类的所有public方法
这其实是符合事实的,切点虽然定了可作用于所有public方法,但AOP作用的是代理类的方法,像上面这种情况直接调用同类方法是不走代理类的,因此AOP作用不到;
下面我们再变化一下即可达到我们的预期:
OK,此文实践重在提醒各位道友AOP生效的关键点—代理。不管是CGLIB还是JDK代理。
关于AOP 的切点的作用范围详解(一)相关推荐
- 【Spring AOP】@Aspect结合案例详解(二): @Pointcut使用@within和within(已附源码)
文章目录 前言 @within 完善打印日志案例 @within深入说明 within 匹配指定类 匹配指定包(package) 源码下载 总结 前言 在微服务流行的当下,在使用Spring Clou ...
- 第14章-Spring AOP通知(Advice)详解
文章目录 一.概述 二.通知的定义 1. 前置通知 2. 后置通知 3. 环绕通知 4. 最终通知 5. 异常通知 三.通知的参数 1. 切入点 2. 通知的参数传递 四.通知的顺序 五.附录 1. ...
- Spring AOP 增强框架 Nepxion Matrix 详解
点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 概述 在<深入聊一聊 Spring AOP 实现机制>一文中,介绍了 Spring A ...
- spring AOP解析之xml方式详解
<aop:config>标签解析 aop名称空间的解析器是AopNamespaceHandler // 这里我们可以看到注册了几个解析器,重点关注ConfigBeanDefinitionP ...
- spring aop实例讲解_Spring核心技术详解(一)
一.Sring简介 Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架.Spring核心是IOC和AOP. Spring主要优点包括: 方便解耦,简化开发,通过Spring提供的I ...
- Spring源码深度解析(五):Spring AOP原理及源码详解
前言 OOP表示面向对象编程,是一种编程思想:AOP表示面向切面编程,也是一种编程思想,AOP的概念可以参考文章:SpringAOP基本概念详解. 正文 1.AbstractAdvisorAutoPr ...
- AOP之@AspectJ技术原理详解
一AOP 1 主要功能 2 主要目标 3 适用对象 4 AOP与OOP的关系 二Android中使用AspectJ 1 Gradle 配置示 2 基本概念 21 切面Aspect 22 连接点Join ...
- Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解
首先我们来看一下官方文档所给我们的关于AOP的一些概念性词语的解释: 切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象.事务管理是J2EE应用中一个关于横切关注点的很好的例子.在 ...
- 【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知Advice注解(已附源码)
文章目录 前言 AOP与Spring AOP @Aspect简单案例快速入门 一.@Pointcut @annotation 二.五种通知Advice 1. @Before前置通知 2. @After ...
最新文章
- 艾伦人工智能研究院开源AllenNLP,基于PyTorch轻松构建NLP模型
- 【c语言】求最大公约数
- ActivityMQ消息持久化到HANA数据库
- 客户/服务器模型:编程思想
- 注册自定义HTTP Handlers
- 函数调用基础概念原理
- Litho在美团动态化方案MTFlexbox中的实践
- base64 能放数组里面么_数组:总结篇
- Y15BeTa的乱搞方法(占坑待填)
- Mysql数据备份与mysqldump增量备份
- ffmpeg 踩坑总结 —— 视频转码 转H264格式
- 国药准字、药品本位码
- 【考试总结贴】工程测量学
- edge下载网络问题无法下载
- 微信公众号素材html,微信公众号运营必备:10个免费高清图片素材网站
- win10 C盘扩大容量
- 五十个html js特效动画,基于mo.js制作的17种炫酷图标动画特效
- 苹果强制使用HTTPS传输后APP开发者必须知道的事
- 手机的唯一标识码 php,android手机获取唯一标识的方法
- mac软件卸载不干净?你没用对工具!!试试这款mac卸载神器!