Spring容器AOP详细介绍

AOP是什么?
AOP的全称是Aspect-Oriented Programming,即面向切面编程
(也称面向方面编程)。它是面向对象编程(OOP)的一种补充,目
前已成为一种比较成熟的编程方式,AOP只是一种编程思想,并不是java特有的。
在这里插入图片描述
在这里插入图片描述
要实现AOP的思想就需要用到设计模式中的动态代理模式。

使用动态代理实现AOP思想有两种方式:

第一种,使用JDK自带的动态代理类来实现AOP思想
JDK动态代理是通过java.lang.reflect.Proxy 类来实现的,我们
可以调用Proxy类的newProxyInstance()方法来创建代理对象。对于
使用业务接口的类,Spring默认会使用JDK动态代理来实现AOP。

但它是有局限性的,使用动态代理的对象必须实现一个或多个接口,
那么如何代理没有实现接口的类。答案是使用CGLIB代理

第二种,使用CGLIB
CGLIB(Code Generation Library)是一个高性能开源的代
码生成包,它采用非常底层的字节码技术,对指定的目标类生成
一个子类,并对子类进行增强。

Spring的通知类型:
在这里插入图片描述
在这里插入图片描述
使用ASpectJ AOP框架
AspectJ是一个基于Java语言的AOP框架,
它提供了强大的AOP功能。Spring 2.0以后,
Spring AOP引入了对AspectJ的支持,并允许直
接使用AspectJ进行编程,而Spring自身的AOP
API也尽量与AspectJ保持一致。新版本的Spring
框架,也建议使用AspectJ来开发AOP。
使用AspectJ实现AOP有两种方式:一种是基
于XML的声明式AspectJ,另一种是基于注解的
声明式AspectJ。

第一种,基于Xml的声明式AspectJ
在这里插入图片描述
在这里插入图片描述
第二种,基于注解的声明式AspectJ
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值