必懂的基础知识:spring之aop原理

文章 未结 0 2.51w
无法显示用户头像
作者:猪猪侠,责任编辑:猪猪侠 2 白银
发布于 2019-06-07
h1[代理模式] 为对象提供一个替身,以控制对这个对象的访问。(代理通过实现对象的接口,并在代理中注入该对象,控制该对象的访问) h1[动态代理] 在java.lang.reflect包中有自己的代理支持,利用这个包可以在运行时动态地创建一个代理类,实现一个或者多个接口并将方法的调用转发到你所指定的类。 h1[AOP原理] AOP实际上是由目标类的代理类实现的。 由AOP框架动态生成的一个代理对象,该代理对象可作为目标对象的替身使用。 代理对象包含了目标对象的全部方法,但代理对象中的方法与目标对象的方法存在差异, 代理对象的方法在特定切入点添加了增强处理,并调用目标对象的方法。 h1[Spring中对AOP的支持] Spring中AOP代理对象由Spring的IoC容器负责生成、管理,其依赖关系也由IoC容器负责管理。 因此,AOP代理可以直接使用容器中的其他Bean实例作为目标,这种关系可由IoC容器的依赖注入提供。 Spring默认使用Java动态代理来创建AOP代理,这样就可以为任何接口实例创建代理了。 当需要代理的类不是代理接口的时候, Spring自动会切换为使用CGLIB代理,也可强制使用CGLIB。  h1[AOP编程] 1、定义普通业务组件(被代理对象)。 2、定义切入点,一个切入点可能横切多个业务组件。(需要代理的方法) 3、定义增强处理,增强处理就是在AOP框架为普通业务组件织入的处理动作。(InvocationHandler的invoke方法)。 所以进行AOP编程的关键就是定义切入点和定义增强处理。 一旦定义了合适的切入点和增强处理,AOP框架将会自动生成AOP代理。 即:代理对象的方法 = 增强处理 + 被代理对象的方法。 h1[Spring 中 AOP 的实现] Spring有两种方式来定义切入点和增强处理。 1、基于 Annotation 的“零配置”方式:使用@Aspect、@Pointcut等 Annotation 来标注切入点和增强处理。 2、基于 XML 配置文件的管理方式:使用 Spring 配置文件来定义切入点和增强点。

声明:本文所有观点仅代表创作者本人,ECode1024系信息收集发布平台,ECode1024仅提供信息存储以及展示服务。若有侵权,请联系我们删除。
回复
  • 暂无任何回复,抢个沙发吧~~
推荐阅读
ECode1024 QQ交流群

打开手机QQ扫码加入 ECode1024 交流群

ECode1024 微信交流群

打开手机微信扫码关注 ECode1024 公众号