Spring AOP切面编程简介

[size=small][color=olive][b]
AOP 编程思想简介

使用AOP ,可以将处理某些与程序功能无关但又是必须的代码注入主程序,
如异常处理、日志、安全、事务等。

Spring AOP 是一种非侵略性的、轻型的AOP 框架。无需使用预编译或其他的元标签,
便可以在Java程序中使用它,大大简化了AOP 的开发的复杂度,也降低了AOP 的开发难度。,


AOP.适应原则:关注点分离原则(separation of concerns)


AOP 的关键概念:
Pointcut / Advice / Advisor

* Pointcut(切入点) :
连接点指的程序运行中的某个阶段点,如方法的调用,异常的抛出等。

* Advice(通知):
Advice 是某个连接点所采用的处理逻辑,也就是向连接点注入的代码。

* Advisor(通知器)
通知器 将切入点和通知配置器 ,它包括Pointcut 和 Advice,将Advice注入到
Pointcut位置代码;

AOP 实现的原理:

静态代理
代理类
动态代理

提示:相关代理请下载demo查看:


比较:
动态代理与普通代理相比较,最大的好处是接口中声明的所有方法都
被转移到一个集中的方法中处理(invoke),这样,在接口方法数量比较多的时候,
我们可以灵活处理,而不需要像静态代理那样每个方法进行中转。

注意:
动态代理类只能代理接口,代理类都需要实现InvocationHandler类,实现invoke方法。
该方法就是调用被代理接口所有方法时需要调用的,而invoke方法返回的值是被代理接口的
一个实现类;


Spring 中的切入点:
动态切入点:
动态切入点和静态切入点的区别于,它不仅要考虑给定的方法和类这些静态信息,
还要考虑方法参数,由于参数的变化性,他们必须每次方法调用的时候都被计算,并且不能缓存结果,因此动态切入点的计算代价比静态切入点高的多;

自定义切入点:
为Spring 中的切入点是JAVA类,而不是语言特性,因此可以定义无论是静态还是动态的自定义切入点,但由于AOP 还没有完全成熟,所以Spring在这个方法还不是很强大;


-->


[/b][/color][/size]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值