简述

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 的切点的作用范围详解(一)相关推荐

  1. 【Spring AOP】@Aspect结合案例详解(二): @Pointcut使用@within和within(已附源码)

    文章目录 前言 @within 完善打印日志案例 @within深入说明 within 匹配指定类 匹配指定包(package) 源码下载 总结 前言 在微服务流行的当下,在使用Spring Clou ...

  2. 第14章-Spring AOP通知(Advice)详解

    文章目录 一.概述 二.通知的定义 1. 前置通知 2. 后置通知 3. 环绕通知 4. 最终通知 5. 异常通知 三.通知的参数 1. 切入点 2. 通知的参数传递 四.通知的顺序 五.附录 1. ...

  3. Spring AOP 增强框架 Nepxion Matrix 详解

    点击上方"方志朋",选择"置顶或者星标" 你的关注意义重大! 概述 在<深入聊一聊 Spring AOP 实现机制>一文中,介绍了 Spring A ...

  4. spring AOP解析之xml方式详解

    <aop:config>标签解析 aop名称空间的解析器是AopNamespaceHandler // 这里我们可以看到注册了几个解析器,重点关注ConfigBeanDefinitionP ...

  5. spring aop实例讲解_Spring核心技术详解(一)

    一.Sring简介 Spring是一个分层的Java SE/EE应用一站式的轻量级开源框架.Spring核心是IOC和AOP. Spring主要优点包括: 方便解耦,简化开发,通过Spring提供的I ...

  6. Spring源码深度解析(五):Spring AOP原理及源码详解

    前言 OOP表示面向对象编程,是一种编程思想:AOP表示面向切面编程,也是一种编程思想,AOP的概念可以参考文章:SpringAOP基本概念详解. 正文 1.AbstractAdvisorAutoPr ...

  7. AOP之@AspectJ技术原理详解

    一AOP 1 主要功能 2 主要目标 3 适用对象 4 AOP与OOP的关系 二Android中使用AspectJ 1 Gradle 配置示 2 基本概念 21 切面Aspect 22 连接点Join ...

  8. Java程序员从笨鸟到菜鸟之(七十四)细谈Spring(六)spring之AOP基本概念和配置详解

    首先我们来看一下官方文档所给我们的关于AOP的一些概念性词语的解释: 切面(Aspect):一个关注点的模块化,这个关注点可能会横切多个对象.事务管理是J2EE应用中一个关于横切关注点的很好的例子.在 ...

  9. 【Spring AOP】@Aspect结合案例详解(一): @Pointcut使用@annotation + 五种通知Advice注解(已附源码)

    文章目录 前言 AOP与Spring AOP @Aspect简单案例快速入门 一.@Pointcut @annotation 二.五种通知Advice 1. @Before前置通知 2. @After ...

最新文章

  1. 艾伦人工智能研究院开源AllenNLP,基于PyTorch轻松构建NLP模型
  2. 【c语言】求最大公约数
  3. ActivityMQ消息持久化到HANA数据库
  4. 客户/服务器模型:编程思想
  5. 注册自定义HTTP Handlers
  6. 函数调用基础概念原理
  7. Litho在美团动态化方案MTFlexbox中的实践
  8. base64 能放数组里面么_数组:总结篇
  9. Y15BeTa的乱搞方法(占坑待填)
  10. Mysql数据备份与mysqldump增量备份
  11. ffmpeg 踩坑总结 —— 视频转码 转H264格式
  12. 国药准字、药品本位码
  13. 【考试总结贴】工程测量学
  14. edge下载网络问题无法下载
  15. 微信公众号素材html,微信公众号运营必备:10个免费高清图片素材网站
  16. win10 C盘扩大容量
  17. 五十个html js特效动画,基于mo.js制作的17种炫酷图标动画特效
  18. 苹果强制使用HTTPS传输后APP开发者必须知道的事
  19. 手机的唯一标识码 php,android手机获取唯一标识的方法
  20. mac软件卸载不干净?你没用对工具!!试试这款mac卸载神器!

热门文章

  1. 论文解读:《基于预先训练的DNA载体和注意机制识别增强子-启动子与神经网络的相互作用》
  2. python微信语音转发_python实现微信小程序自动回复
  3. C语言判断字符串为空
  4. 核心能力:产品认知能力
  5. 使用photoshop 修复旧照片
  6. Dynamics 365 WebApi 常用语句-字段
  7. 数据结构课设——单位员工通讯录管理系统
  8. Selenium2Library库中没有系统关键字select window by handle咋办?
  9. 如有回忆,我情愿和你化作一团火焰!
  10. 高等数学-曲线积分与曲面积分