什么是AOP

简介: AOP(面向切面编程)是一种编程范式,旨在将横切关注点(如日志、事务管理)从业务逻辑中分离,提升代码模块化与可维护性。核心概念包括:切面(封装横切逻辑)、通知(定义执行时机)、切入点(指定应用位置)、织入(整合切面与业务逻辑)。常见通知类型有前置、后置、返回、异常和环绕通知。

概念:AOP既面向切象编程。是一种编程范式,主要用于将横切关注点从业务逻辑中脱离出来,以此来提高代码的模块化,和可维护性。

核心概念:

  1. 横切关注点(Cross-Cutting Concerns):多个模块中重复出现的与业务逻辑无关但又必须使用的代码,如日志记录,事务管理,权限校验
  2. 切面(Aspect):用于封装横切关注点的类。并且被 @Aspect 注释。如:日志切面主要负责在方法前后添加日志记录。
  3. 通知(Advice):切面在特定切入点中执行的代码。有以下类型
  1. 前置通知(Before):方法执行前
  2. 后置通知(After):方法执行后(无论是否异常)
  3. 返回通知(After Returning):方法正常返回后
  4. 异常通知(After Throwing):方法抛出异常后
  5. 环绕通知(Around):包围方法执行,可自定义执行时机
  1. 切入点(Pointcut):定义通知应该在哪些连接点(方法)上执行,通常表达式(如 AspectJ 语法)execution(* com.example.service.*.*(..)) 匹配所有服务层方法。
  2. 连接点(Join Point):程序执行过程中的特定点(如方法调用,异常抛出),是切入点的候选位置
  3. 织入(Weaving):将切面逻辑切入到目标对象的过程
目录
相关文章
|
5月前
|
存储 SQL 关系型数据库
MySQL 核心知识与索引优化全解析
本文系统梳理了 MySQL 的核心知识与索引优化策略。在基础概念部分,阐述了 char 与 varchar 在存储方式和性能上的差异,以及事务的 ACID 特性、并发事务问题及对应的隔离级别(MySQL 默认 REPEATABLE READ)。 索引基础部分,详解了 InnoDB 默认的 B+tree 索引结构(多路平衡树、叶子节点存数据、双向链表支持区间查询),区分了聚簇索引(数据与索引共存,唯一)和二级索引(数据与索引分离,多个),解释了回表查询的概念及优化方法,并分析了 B+tree 作为索引结构的优势(树高低、效率稳、支持区间查询)。 索引优化部分,列出了索引创建的六大原则
140 2
|
Java Spring 容器
@Resource 这个注解什么用啊
@Resource 这个注解什么用啊
677 0
|
存储 移动开发 数据安全/隐私保护
高效反编译luac文件
高效反编译luac文件
|
5月前
|
JSON 监控 BI
拼多多批量下单工具,拼多多买家批量下单软件,低价下单python框架分享
使用Selenium实现自动化操作流程多线程订单处理提升效率
|
监控 Java Spring
AOP 是什么?一文带你彻底搞懂面向切面编程
本文带你深入理解AOP(面向切面编程),通过Spring Boot实战实现日志、异常、性能监控等通用功能的统一处理。无需修改业务代码,5步完成方法日志切面,解耦横切关注点,提升代码可维护性,真正实现无侵入式增强。
458 5
|
5月前
|
缓存 安全 前端开发
Java 核心知识点与实战应用解析
我梳理的这些内容涵盖了 Java 众多核心知识点。包括 final 关键字的作用(修饰类、方法、变量的特性);重载与重写的区别;反射机制的定义、优缺点及项目中的应用(如结合自定义注解处理数据、框架底层实现)。 还涉及 String、StringBuffer、StringBuilder 的差异;常见集合类及线程安全类,ArrayList 与 LinkedList 的区别;HashMap 的实现原理、put 流程、扩容机制,以及 ConcurrentHashMap 的底层实现。 线程相关知识中,创建线程的四种方式,Runnable 与 Callable 的区别,加锁方式(synchronize
117 0
|
XML 前端开发 Java
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
本文阐述了Spring、Spring Boot和Spring MVC的关系与区别,指出Spring是一个轻量级、一站式、模块化的应用程序开发框架,Spring MVC是Spring的一个子框架,专注于Web应用和网络接口开发,而Spring Boot则是对Spring的封装,用于简化Spring应用的开发。
3322 0
Spring,SpringBoot和SpringMVC的关系以及区别 —— 超准确,可当面试题!!!也可供零基础学习
|
NoSQL 前端开发 Redis
Windows 下安装和配置 Redis (图文教程)
Windows 下安装和配置 Redis (图文教程)
|
Java 数据库连接 数据库
Spring基础3——AOP,事务管理
AOP简介、入门案例、工作流程、切入点表达式、环绕通知、通知获取参数或返回值或异常、事务管理
Spring基础3——AOP,事务管理
|
机器学习/深度学习 存储 监控