spring框架之AOP模块(面向切面),附带通知类型---超详细介绍

简介: spring框架之AOP模块(面向切面),附带通知类型---超详细介绍

一,AOP简介

    是Spring框架中的一个重要模块,它提供了一种通过面向切面编程的方式来实现横切关注点的模块化的方法。AOP可以将应用程序的核心业务逻辑与横切关注点(如日志记录、事务管理、安全性等)分离开来,从而提高代码的可维护性和可重用性。

简单来说:通过动态代理技术可以在目标对象的方法的执行前、执行后以及抛出异常时织入切面逻辑

比如:书籍的增删改,本身只需要完成增删改的功能即可,这是如果需要添加日志功能,那么需要在原有的代码基础上,去修改添加日志功能,受牵连的方法就三个(add/edit/del)了

1.1 核心概念!(专业术语)

1.1.1 切面(Aspect):

   切面是一个模块,用于封装横切关注点的行为。它由切入点和切面逻辑组成。

1.1.2 切入点(Pointcut):

   切入点定义了在哪些连接点上织入切面逻辑。连接点可以是方法的执行、异常的抛出等。

1.1.3 通知(Advice):

    通知是切面在特定切入点上执行的动作。Spring AOP提供了四种类型的通知:前置通知      (Before)、后置通知(After)、返回通知(After-returning)和异常通知(After-throwing)  

1.1.4 织入(Weaving):

 织入是将切面应用到目标对象并创建代理对象的过程。织入可以通过编译期间的编译期织入、类加载期织入或运行期织入来实现。

  总而言之,Spring AOP提供了一种有效的方式来实现横切关注点的模块化。它能够改善代码的可维护性和可重用性,简化开发过程,并促进松耦合的设计

二,通知(7种)

为了让大家更能理解

普通spring-Config ioc实列:

定义一个接口类一个实现类,定义两个方法购书,发表评论方法

接口类 :

实现类:实现接口类方法

需要一个异常类,以便后续抛异常处理

接下来就是spring ioc的配置,如果没有spring Config文件。那就是pom.xml文件没有配置好且配置的时候需要联网!

spring Config 配置

运行结果

2.1 前置通知

根据上面实列来进行前置通知

在目标方法执行之前执行的通知。前置通知可以访问和修改方法的参数。

定义一个类并继承MethodBeforeAdvice 该所被继承的类是前置通知的类

spring Config Ioc的配置

测试结果

2.2 后置通知

在目标方法执行之后(无论是否发生异常)执行的通知。后置通知不能访问方法的返回值

定义一个类并继承AfterReturningAdvice 该所被继承的类是后置通知的类

spring Config Ioc的配置:

运行结果

2.3 环绕通知

环绕通知是最强大和最灵活的通知类型。它将包围目标方法的执行,可以在方法执行前后自定义处理逻辑。环绕通知必须显式地决定是否继续执行目标方法

定义一个类并继承MethodInterceptor 该所被继承的类是环绕通知的类

spring Config Ioc的配置:

运行结果:

2.4 异常通知

在目标方法抛出异常后执行的通知。异常通知可以访问抛出的异常信息,并在必要时处理异常

定义一个类并继承ThrowsAdvice 该所被继承的类是异常通知的类

spring Config ioc文件

运行结果

2.5 过滤通知

在目标方法顺利执行并返回结果后执行的通知。返回通知可以访问并修改方法的返回值。

spring Config ioc文件配置即可

运行结果:

目录
相关文章
|
22天前
|
前端开发 Java 数据库连接
Spring框架初识
Spring 是一个分层的轻量级开源框架,核心功能包括控制反转(IOC)和面向切面编程(AOP)。主要模块有核心容器、Spring 上下文、AOP、DAO、ORM、Web 模块和 MVC 框架。它通过 IOC 将配置与代码分离,简化开发;AOP 提供了声明性事务管理等增强功能。
73 21
Spring框架初识
|
13天前
|
存储 人工智能 开发框架
Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手
第二届开放原子大赛 Spring AI Alibaba 应用框架挑战赛决赛于 2 月 23 日在北京圆满落幕。
|
2月前
|
SQL Java 数据库连接
对Spring、SpringMVC、MyBatis框架的介绍与解释
Spring 框架提供了全面的基础设施支持,Spring MVC 专注于 Web 层的开发,而 MyBatis 则是一个高效的持久层框架。这三个框架结合使用,可以显著提升 Java 企业级应用的开发效率和质量。通过理解它们的核心特性和使用方法,开发者可以更好地构建和维护复杂的应用程序。
137 29
|
1月前
|
XML Java 测试技术
Spring AOP—通知类型 和 切入点表达式 万字详解(通俗易懂)
Spring 第五节 AOP——切入点表达式 万字详解!
116 25
|
1月前
|
XML 安全 Java
Spring AOP—深入动态代理 万字详解(通俗易懂)
Spring 第四节 AOP——动态代理 万字详解!
88 24
|
1月前
|
XML Java 开发者
通过springboot框架创建对象(一)
在Spring Boot中,对象创建依赖于Spring框架的核心特性——控制反转(IoC)和依赖注入(DI)。IoC将对象的创建和管理交由Spring应用上下文负责,开发者只需定义依赖关系。DI通过构造函数、setter方法或字段注入实现依赖对象的传递。Spring Boot的自动配置机制基于类路径和配置文件,自动为应用程序配置Spring容器,简化开发过程。Bean的生命周期包括定义扫描、实例化、依赖注入、初始化和销毁回调,均由Spring容器管理。这些特性提高了开发效率并简化了代码维护。
|
5天前
|
存储 监控 数据可视化
SaaS云计算技术的智慧工地源码,基于Java+Spring Cloud框架开发
智慧工地源码基于微服务+Java+Spring Cloud +UniApp +MySql架构,利用传感器、监控摄像头、AI、大数据等技术,实现施工现场的实时监测、数据分析与智能决策。平台涵盖人员、车辆、视频监控、施工质量、设备、环境和能耗管理七大维度,提供可视化管理、智能化报警、移动智能办公及分布计算存储等功能,全面提升工地的安全性、效率和质量。
|
2月前
|
开发框架 运维 监控
Spring Boot中的日志框架选择
在Spring Boot开发中,日志管理至关重要。常见的日志框架有Logback、Log4j2、Java Util Logging和Slf4j。选择合适的日志框架需考虑性能、灵活性、社区支持及集成配置。本文以Logback为例,演示了如何记录不同级别的日志消息,并强调合理配置日志框架对提升系统可靠性和开发效率的重要性。
|
缓存 监控 Java
Spring框架之AOP(面向切面编程)
Spring框架之AOP(面向切面编程)
75 0
|
8月前
|
分布式计算 Java MaxCompute
详解 Java 限流接口实现问题之在Spring框架中使用AOP来实现基于注解的限流问题如何解决
详解 Java 限流接口实现问题之在Spring框架中使用AOP来实现基于注解的限流问题如何解决
123 0