将一些通用的逻辑集中实现,然后通过AOP进行逻辑的切入,减少了零散的碎片化代码,提高了系统的可维护性。
具体是含义可以理解为︰通过代理的方式,面向切面编程,在调用想要的对象方法时候,进行拦截处理,执行切入的逻辑,然后再调用真正的方法实现。对方法进行增强。
AOP他用到了代理模式和责任链模式
AOP的底层是通过动态代理实现的,JDK动态代理和cglib动态代理。
代理可以分为动态代理和静态代理
动态代理,即在运行时将切面的逻辑进去,针对实现类A,然后定义要代理的切入点和切面的实现,程序会自动在运行时生成类似上面的代理类。
静态代理,在编译时或者类加载时进行切面的织入,典型的Aspect]就是静态代理。
spring生命周期他是分为实例化、属性赋值、初始化、销毁,代理对象的创建是在初始化的时候完成的。
在不改变原来这个方法,这个类的前提下,去增加对应的逻辑,这个背后底层的java上的原理是继承和是用接口的形式,但我们写代码的时候并没有去继承他,也没用去实现这个接口,那这部分内容是谁帮我们完成的,是spring,也就是动态代理,什么是动态:动态生成(我们没有去实现这个接口和继承,spring自动帮我们去做这个事情),根据不同的范围创建不同的类代理。动态代理分为哪几种类型jdk动态代理---》继承,cglib动态代理---》接口。