谈谈对 AOP 的理解

简介: 谈谈对 AOP 的理解

AOP 的全称是 Aspect Oriented Programming,即面向切面编程。是实现功能统一维护的一种技术,它将业务逻辑的各个部分进行隔离(比如安全、日志、事务等),封装成一个切面,然后注入到目标对象(具体业务逻辑)中去。AOP 可以说是对 OOP 的补充,OOP 引入继承、封装、多态的概念建立一种对象层次结果,允许开发者定义纵向关系,但不适合定义航向关系,这样会导致大量代码重复,不利于各个模块重用;而 AOP 将那些与业务无关,但却对多个对象产生影响的公共行为和逻辑,抽取并封装成一个可重用的模块,称他为 “切面”,这样就减少了代码重复,降低了模块间的耦合度,提高系统的可维护性。AOP 运用动态代理的技术,在不修改源码的基础上对已有的方法进行增强。

作用:在不修改源码的基础上,对已有方法进行增强。

实现原理:动态代理技术。
优势:减少重复代码、提高开发效率、方便维护
应用场景:事务处理、日志管理、权限控制、异常处理等方面。

两种实现方式:

动态代理:利用截取消息的方式对该消息进行装饰,来取代原来对象行为的执行。

静态织入:引入特定的语法创建 “切面”,使编译器可以在编译期间织入有关 “切面” 的代码。

相关文章
|
8月前
|
数据库
AOP(面向切面编程)的基本概念和原理
AOP(面向切面编程)的基本概念和原理
494 0
|
3月前
|
设计模式 缓存 Java
面试题:谈谈Spring用到了哪些设计模式?
面试题:谈谈Spring用到了哪些设计模式?
|
8月前
|
设计模式 Java
AOP原理解析(二)
AOP原理解析
38 0
|
8月前
|
Arthas Java 编译器
AOP原理解析(一)
AOP原理解析
109 0
|
8月前
|
SQL 缓存 Java
【Spring】AOP底层原理(动态代理)-》 AOP概念及术语 -》 AOP实现
【Spring】AOP底层原理(动态代理)-》 AOP概念及术语 -》 AOP实现
125 0
|
XML 缓存 监控
【面试必问】Spring核心之面向切面编程(AOP)
AOP(面向切面编程)是一种编程范式,用于将横切关注点(如日志记录、性能统计等)从主要业务逻辑中分离出来。通过将这些横切关注点与业务逻辑分离开来,可以提高代码的可重用性、可维护性和可扩展性。在AOP中,切面是一个模块化的单元,它封装了与横切关注点相关的行为,并可以在多个不同的应用程序中重用。切面可以通过一种称为“织入”的过程将其与主要业务逻辑相结合,从而创建一个完整的应用程序。
141 0
【面试必问】Spring核心之面向切面编程(AOP)
|
设计模式 缓存 安全
面试官问 Spring AOP 中两种代理模式的区别,我懵逼了
基本介绍 代理模式是一种结构性设计模式。为对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象,并允许在将请求提交给对象前后进行一些处理。 被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象。 代理模式主要有三种不同的形式: 静态代理:由程序员创建代理类或特定工具自动生成源代码再对其编译。在程序运行前代理类的 .class 文件就已经存在了 动态代理(JDK 代理、接口代理):在程序运行时运用反射机制动态创建而成,动态就是在程序运行时生成的,而不是编译时。 cglib 代理(可以在内存动态的创建对象,而不是实现接口,属于动态代理的范畴)
|
设计模式 缓存 Java
谈谈Spring中都用到了那些设计模式
写作目的 看看Spring和SpringMVC源码还是有必要的,而且里面用了很多经典的设计模式,所以从源码角度分析一下Spring中的设计模式。
207 0
|
Java 开发者
AOP 的概念|学习笔记
快速学习AOP 的概念
115 0
AOP 的概念|学习笔记