当前位置: 首页 > news >正文

SpringBoot AOP

AOP

AOP(Aspect-Oriented Programming,面向切面编程)是Springboot 的核心概念。它是面向对象编程的一种延续。
它将公共模块(日志,事务,权限,监控)代码与业务模块代码分开开发,通过动态代理实现两者组合发挥功能。

术语

连接点:就是被代理的方法。
切点:连接点的集合。可以通过正则表达式匹配一系列连接点。
通知:定义的新功能。按照执行时机可以分为前置通知,后置通知,环绕通知,正常返回通知,异常返回通知。
目标对象:被代理对象。
引入:引入新的类和方法。
织入:通过动态代理技术,生成代理对象。就是将通知应用到切点。
切面:公共模块类,由切点+通知+引入内容组成。

源码

public class LogAspect {@Pointcut("execution(* com.example.demo.service.MySweviceImpl.printName(..))")public void pointCut() {}@Before("pointCut()")public void before() {System.out.println("before ...");}
}

execution 表示匹配正则表达式定义的方法。com.example.demo.service.MySweviceImpl.printName是目标对象的全限定名称,可以是类,可以是方法。(..)表示任意参数。* 表示任意返回对象。
常用的匹配方法还有:@annotation():匹配带有特定注解的连接点。更多切点匹配定义参考 springboot 教程。

@Before 定义前置通知。在执行目标连接点之前,先执行前置通知。

http://www.dtcms.com/a/311612.html

相关文章:

  • CYUSB3014-BZXC-USB3.0接口芯片-富利威
  • python---literal_eval函数
  • Python管道编程解析:构建高效数据流处理框架
  • Redis从入门到实战
  • Effective C++ 条款18:让接口容易被正确使用,不易被误用
  • IOT物联网平台发布,可私有化部署
  • 算法刷题【面试经典150题】
  • 技巧|SwanLab记录PR曲线攻略
  • 【Unity3D实例-功能-移动】小兵移动-通过鼠标点击进行
  • 【微实验】弦振动 MATLAB 物理模型 动画仿真
  • 腕管综合征 : “鼠标手”| “数字时代工伤”,在我国视频终端工作者中患病率达12%到15%。“
  • web:js的模块导出/导入
  • 【编号413】“一带一路”25个港口城市及其周边区域海岸线分类数据
  • 译|Netflix 数据平台运营中基于机器学习自动修复系统
  • 【网络与爬虫 38】Apify全栈指南:从0到1构建企业级自动化爬虫平台
  • 【Android】使用 Intent 传递对象的两种序列化方式
  • RPG增容2.尝试使用MMC根据游戏难度自定义更改怪物属性(三)
  • 推荐系统学习笔记(六)自监督学习
  • 【语音技术】意图与语料
  • gcc-arm-none-eabi安装后,找不到libgcc.a的拉置
  • 边缘计算优化!陌讯轻量化模型实现路面裂缝误检率↓78%
  • 【大模型LLM】大模型训练加速 - 深度混合精度训练(Mixed Precision Training)原理详解
  • 数字化生产管理系统设计
  • Leetcode 11 java
  • Agentic RAG:自主检索增强生成的范式演进与技术突破
  • ADB 查看 CPU 信息、查看内存信息、查看硬盘信息
  • 计算学习理论(PAC学习、有限假设空间、VC维、Rademacher复杂度、稳定性)
  • PHP 与 MySQL 详解实战入门(2)
  • Linux中使用Qwen模型:Qwen Code CLI工具
  • stm32F407 实现有感BLDC 六步换相 cubemx配置及源代码(二)