Spring AOP 教程2024 年 8 月 29 日 | 阅读 3 分钟 面向切面编程 (AOP) 补充了 OOPs,因为它也提供了模块化。 但模块化的关键单元是切面而不是类。 AOP 将程序逻辑分解为不同的部分(称为关注点)。 它用于通过横切关注点来提高模块化。 横切关注点是可能影响整个应用程序的关注点,并且应尽可能集中在代码中的一个位置,例如事务管理、身份验证、日志记录、安全性等。 为什么要使用 AOP?它提供了一种可插拔的方式,可以在实际逻辑之前、之后或周围动态添加额外的关注点。 假设一个类中有 10 个方法,如下所示 有 5 个方法以 m 开头,2 个方法以 n 开头,3 个方法以 p 开头。 理解场景 在调用以 m 开头的方法后,我必须维护日志并发送通知。 没有 AOP 的问题 我们可以从以 m 开头的方法调用(维护日志并发送通知的)方法。 在这种情况下,我们需要在所有 5 个方法中编写代码。 但是,如果客户将来表示,我不需要发送通知,您需要更改所有方法。 这会导致维护问题。 使用 AOP 的解决方案 我们不必从该方法调用方法。 现在,我们可以定义附加的关注点,例如在一个类的方法中维护日志、发送通知等。 它的条目在 xml 文件中给出。 将来,如果客户说要删除通知器功能,我们只需要在 xml 文件中进行更改。 因此,在 AOP 中维护很容易。 哪里使用 AOP?AOP 主要用于以下情况
AOP 概念和术语AOP 概念和术语如下
连接点连接点是程序中的任何点,例如方法执行、异常处理、字段访问等。 Spring 仅支持方法执行连接点。 AdviceAdvice 表示切面在特定连接点采取的动作。 有不同类型的 advice
切入点它是 AOP 的一种表达式语言,用于匹配连接点。 引言这意味着为类型引入附加的方法和字段。 它允许您将新接口引入到任何被增强的对象。 目标对象它是被一个或多个切面增强的对象。 在 Spring 中也称为代理对象,因为 Spring AOP 是使用运行时代理实现的。 方面它是一个包含 advice、连接点等的类。 拦截器它是一个仅包含一个 advice 的切面。 AOP 代理它用于实现 AOP 框架创建的切面契约。 它将是 Spring 框架中的 JDK 动态代理或 CGLIB 代理。 编织它是将切面与其他应用程序类型或对象链接以创建增强对象的过程。 织入可以在编译时、加载时或运行时完成。 Spring AOP 在运行时执行织入。 AOP 实现AOP 实现由以下提供
Spring AOPSpring AOP 可以通过以下 3 种方式使用。 但使用最广泛的方法是 Spring AspectJ 注解风格。 使用 Spring AOP 的 3 种方式如下 参考链接Spring Source AOPSpring Source AOP API 维基百科 下一个主题Spring AOP 示例 |
我们请求您订阅我们的新闻通讯以获取最新更新。