什么是spring的aop 通俗易懂!带你了解什么是Spring的AOP,它有啥作用?

网安智编 厦门萤点网络科技 2025-12-26 00:06 45 0
AOP 是由多个部分组成,包括AOP、DAO、、Web、MVC,并且他们都已IoC 容器为基础。 这么多功能都是由于其IoC 容器的特性,实现了对多种框架的集成,但 AOP 是个例外,它不是对某个框架的集成,而是提供了面向方面编程...

Spring AOP 代理模式_什么是spring的aop_Spring AOP 连接点通知

AOP 是由多个部分组成,包括AOP、DAO、、Web、MVC,并且他们都已IoC 容器为基础。 这么多功能都是由于其IoC 容器的特性,实现了对多种框架的集成,但 AOP 是个例外,它不是对某个框架的集成,而是提供了面向方面编程的功能,你可以自由选择是否使用AOP。AOP 提供了强大的中间件解决方案,这使得IoC 容器更加完善。 我们可以把AOP 看做是 Sping 的一种增强,它使得 可以不需要 EJB 就能够提供声明式事务管理,或者也可以使用 AOP 框架的全部功能来实现自己定义的切面。 AOP将应用系统分为两部分,核心业务逻辑(Core )及横向的通用逻辑,也就是所谓的方面 ,例如,所有大中型应用都要涉及到的持久化管理()、事务管理( )、安全管理()、日志管理()和调试管理()等。 AOP的核心设计思想:代理模式 AOP常用专业术语:① 方面():一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用的或拦截器实现。 ② 连接点():程序执行过程中明确的点,如方法的调用或特定的异常被抛出。 ③ 通知():在特定的连接点,AOP框架执行的动作。各种类型的通知包括“”、“”和“”通知。通知类型将在下面讨论。许多AOP框架包括都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。 ④ 切入点():指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。 ⑤ 引入():添加方法或字段到被通知的类。允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现接口,来简化缓存。 ⑥ 目标对象( ):包含连接点的对象,也被称作被通知或被代理对象。 ⑦ AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在中,AOP代理可以是JDK动态代理或CGLIB代理。 ⑧ 编织():组装方面来创建一个被通知对象。这可以在编译时完成(例如使用编译器),也可以在运行时完成。和其他纯Java AOP框架一样,在运行时完成织入。 各种通知类型包括:① 通知:包围一个连接点的通知,如方法调用。这是最强大的通知。Aroud通知在方法调用前后完成自定义的行为,它们负责选择继续执行连接点或通过返回它们自己的返回值或抛出异常来短路执行。 ② 通知:在一个连接点之前执行的通知,但这个通知不能阻止连接点前的执行(除非它抛出一个异常)。 ③ 通知:在方法抛出异常时执行的通知。提供强制类型的通知,因此你可以书写代码捕获感兴趣的异常(和它的子类),不需要从或强制类型转换。 ④ After 通知:在连接点正常完成后执行的通知,例如,一个方法正常返回,没有抛出异常。 通知是最通用的通知类型。大部分基于拦截的AOP框架(如和Jboss 4)只提供通知。