面向切面编程,把散落在程序中的公共部分提取出来,做成切面类,这样的好处在于,代码的可重用,一旦涉及到该功能的需求发生变化,只要修改该代码就行,否则,你要到处修改,如果只要修改1、2处那还可以接受,万一有1000处呢。
AOP底层的东西就是JDK动态代理和CGLIB代理,说白了就是增强类的功能。
最常用的AOP应用在数据库连接以及事务处理上。如spring的声明式事务。
原理:反射机制
常用模式:代理模式,工厂模式
AOP通知的类型有:前通知,后通知,环绕通知,异常通知。
触法点,也就是我们对应相应的业务写的方法,这些方法需要开启和关闭事务,我们把需要处理的方法叫做触法点。
代理有很多,据说是5中,但常用的只是jdk 的动态代理和CGLIB代理
jdk的代理分为静态代理和动态代理,静态代理用的很少,一般都是动态代理,
CGLIB代理是生成的目标类的子类,所以类和方法不能声明为final的,要不然就会有问题
jdk的代理是必须要实现接口的,而CGLIB不是,但必须要引入jar包,spring中默认使用jdk 的动态代理(实现接口了),除强制设置CGLIB的代理
常用两种代理模式:
JDK动态Proxy用于对接口的代理,是动态产生一个实现指定接口的类。被代理的类必须实现制定的接口。
CGLIB用于对类的代理,是动态产生一个继承被代理类的类。对于没有继承接口的类,通过继承运用其子类来实现。
分享到:
相关推荐
**AOP概述** AOP(Aspect Oriented Programming,面向切面编程)是一种编程范式,旨在将关注点分离,使得程序中的业务逻辑和系统服务(如日志、事务管理、安全控制等)能够更好地解耦。在传统的面向对象编程中,...
Spring AOP(面向切面编程)是Spring框架中的一个重要组成部分,它允许开发者通过定义切面来实现代码的解耦和模块化。AOP的核心概念包括切面、通知、连接点、切入点、织入等,这些概念帮助我们实现横切关注点的分离...
spring AOP 理论知识点总结.wpsspring AOP 理论知识点总结.wpsspring AOP 理论知识点总结.wps
### AOP面向切面编程详解 #### 一、AOP概览 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程思想和技术,它作为OOP(面向对象编程)的一种补充,主要解决了OOP在处理横切关注点方面的不足。在传统的...
总结,AOP提供了将横切关注点与业务逻辑分离的能力,使得代码更易于维护和扩展。Spring AOP通过代理机制实现了这一功能,提供了多种通知类型以适应不同的场景,并且支持自定义的Pointcut来精确控制切面的插入点。在...
**总结** AOP Alliance作为面向切面编程的桥梁,简化了多个AOP框架之间的交互,提高了代码的可复用性和模块化。通过理解并应用其核心接口,开发者可以构建出更加灵活和可扩展的系统。同时,源码的公开使得开发者...
### AOP技术详解 #### 一、AOP技术概述 AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,旨在通过将横切关注点与核心业务逻辑分离来提高软件的模块化程度。该技术由施乐公司的帕洛阿尔托研究...
总结来说,AOP开发环境jar包是为方便开发者进行AOP编程而准备的,它通常包括一套经过验证的、版本兼容的库,如Spring AOP、AspectJ等,以减少版本冲突带来的困扰,提高开发效率。通过理解和掌握这些工具和概念,...
总结,AOPAlliance在Spring 2.0中起着桥梁和纽带的作用,它为AOP的实现提供了一个通用的接口,促进了框架间的协作。通过理解并掌握AOPAlliance,开发者能够更好地利用Spring 2.0的AOP特性,实现高效、灵活的代码组织...
Spring AOP(面向切面编程)是Spring框架的重要组成部分,它提供了一种模块化和解耦的编程方式,使得我们可以在不修改业务代码的情况下,实现对应用程序中的横切关注点(如日志、事务管理、权限控制等)的处理。...
总结起来,"spring-aop-jar"涉及了Spring框架中的面向切面编程模块,包括Spring AOP和AspectJ的集成。通过理解和熟练使用这些组件,开发者可以有效地解耦关注点,提高代码的可维护性和可扩展性。在实际项目中,结合...
#### 七、总结 AOP Alliance 为 AOP 技术提供了一套标准化的框架,极大地简化了开发者的工作量,并促进了不同 AOP 实现之间的互操作性。通过学习并掌握 AOP Alliance 的核心概念和接口,开发者可以在实际项目中更...
#### 五、总结 通过上述介绍,我们可以看出Spring AOP不仅提供了丰富的AOP特性,还极大地方便了开发者的使用。它通过非侵入性和轻量级的设计理念,使得开发者能够轻松地将诸如日志记录、事务管理等功能添加到现有的...
总结起来,这些jar包是实现Spring AOP的基础,它们共同提供了定义、编译、织入和执行切面所需的所有工具。aopalliance库提供了通用的AOP接口,aspectjweaver和aspectj库实现了强大的AspectJ语言和运行时,而cglib则...
### 总结 Spring AOP提供了注解和XML两种方式来实现切面编程。注解方式更加简洁,易于理解和维护,适用于大多数情况。而XML配置方式则在复杂场景下更具灵活性,如需要动态调整切面配置时。在实际项目中,可以根据...
五、总结 通过Spring的XML配置文件,我们可以灵活地定义、组合和管理切面,实现代码的解耦和模块化。这种方式虽然相比注解方式略显繁琐,但对于大型项目或者需要精细控制AOP配置的情况,仍然是一个很好的选择。通过...