Spring AOP和代理有何区别及具体应用场景?
- 内容介绍
- 文章标签
- 相关推荐
本文共计3122个文字,预计阅读时间需要13分钟。
一、AOP的基本概念
1.1 什么是AOP(Aspect Oriented Programming),面向切面编程。
与OOP(面向对象编程)面向对象一样,AOP是面向切面的编程。面向对象是将数据和操作数据的方法封装在对象中,而AOP则是将横切关注点(如日志、事务管理)分散在应用中的不同部分。切面(Aspect):切面是应用中横切关注点的一个模块化方式。例如,日志、事务管理等。
面向切面编程(AOP):AOP是一种编程范式,允许开发者以模块化的方式将横切关注点与业务逻辑分离。它通过切面将横切关注点应用于业务逻辑,提高代码的复用性和可维护性。
一、AOP 的基本概念
1.1 什么是 AOP
Aspect Oriented Programming,面向切面编程。
就跟我们说 OOP 是面向对象一样,AOP 是面向切面的。切面是分散在应用中的一个标准代码或功能。切面通常与实际的业务逻辑不同(例如,事务管理)。每个切面专注于一个特定的环切功能。
这里的切面呢,可以理解为横切。比如在所有的 DAO 层方法上加上一个同样的切面,功能是记录日志;又或者在某个接口上应用一个切面,作用是检查权限。
AOP 是基于代理来实现的。而代理又分为静态代理和动态代理。两者的区别在于代理类于何时生成。
下面我们讲讲代理是怎么回事?
1.2 代理与 Spring AOP
代理分为静态代理和动态代理:
- 静态代理:代理类在编译阶段生成,程序运行前就存在。
本文共计3122个文字,预计阅读时间需要13分钟。
一、AOP的基本概念
1.1 什么是AOP(Aspect Oriented Programming),面向切面编程。
与OOP(面向对象编程)面向对象一样,AOP是面向切面的编程。面向对象是将数据和操作数据的方法封装在对象中,而AOP则是将横切关注点(如日志、事务管理)分散在应用中的不同部分。切面(Aspect):切面是应用中横切关注点的一个模块化方式。例如,日志、事务管理等。
面向切面编程(AOP):AOP是一种编程范式,允许开发者以模块化的方式将横切关注点与业务逻辑分离。它通过切面将横切关注点应用于业务逻辑,提高代码的复用性和可维护性。
一、AOP 的基本概念
1.1 什么是 AOP
Aspect Oriented Programming,面向切面编程。
就跟我们说 OOP 是面向对象一样,AOP 是面向切面的。切面是分散在应用中的一个标准代码或功能。切面通常与实际的业务逻辑不同(例如,事务管理)。每个切面专注于一个特定的环切功能。
这里的切面呢,可以理解为横切。比如在所有的 DAO 层方法上加上一个同样的切面,功能是记录日志;又或者在某个接口上应用一个切面,作用是检查权限。
AOP 是基于代理来实现的。而代理又分为静态代理和动态代理。两者的区别在于代理类于何时生成。
下面我们讲讲代理是怎么回事?
1.2 代理与 Spring AOP
代理分为静态代理和动态代理:
- 静态代理:代理类在编译阶段生成,程序运行前就存在。

