AOP的概念:
AOP全称为Aspect Oriented Programming,意为“面向切面编程”,现在是软件开发中的一个热点,也是spring框架中的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离从而使得业务逻辑部分之间的耦合性降低,提高开发的效率。
为什么学习AOP?
利用AOP可以实现在不修改源码的情况下来扩展空能,如增加权限校验、日志记录、性能监控、事物控制等。
AOP的底层实现:
AOP底层是靠动态代理(动态代理点击打开链接)实现的,这里分两种情况,一种是被增强的类实现了某个接口,那么就需要创建接口实现类代理对象了,另一种是被增强的类继承了某个父类,那么就需要创建所在类的子类对象了。
AOP的术语(个人感觉官方的概念比较晦涩难懂,下面是个人对这些术语的理解,不准确的地方请各位指正)
1、Joinpoint(连接点):所谓连接点是指那些被拦截到的点。在spring中这些点指的是被增强类中可以被增强的方法。
2、Pointcut(切入点): 在一个类中有很多的方法可以被加强,实际操作中真正被加强的方法。
3、Advice(通知/增强):所谓通知是指拦截到Joinpoint之后所要做的事情就是通知.通俗的说法就是被增强的方法中新添加的功能。
通知分为前置通知,后置通知,异常通知,最终通知,环绕通知。
前置通知:在增强的方法执行之前进行操作。
后置通知:在增强的方法执行之后进行操作。
环绕通知:在增强的方法执行之前和执行之后进行操作。
最终通知:增强了两个方法,执行第一个,执行第二个,在第二个之后执行。
异常通知:程序出现异常。
4、Aspect(切面): 是切入点和通知的结合,就是把具体的逻辑用到具体的方法上面。
5、Target(目标对象):代理的目标对象(要增强的类)
6、Weaving(织入):是把增强应用到目标的过程,就是把advice 应用到 target的过程
7、Proxy(代理):一个类被AOP织入增强后,就产生一个结果代理类
8、Introduction(引介):引介是一种特殊的通知在不修改类代码的前提下, Introduction可以在运行期为类动态地添加一些方法或Field.
以上就是本人对在spring中AOP的理解,希望对各位今后的攻城狮有帮助。
Spring中的AOP思想
最新推荐文章于 2024-07-03 01:50:11 发布