`
1140566087
  • 浏览: 547867 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
博客专栏
2c4ae07c-10c2-3bb0-a106-d91fe0a10f37
c/c++ 入门笔记
浏览量:18078
3161ba8d-c410-3ef9-871c-3e48524c5263
Android 学习笔记
浏览量:309558
Group-logo
J2ME 基础学习课程集
浏览量:18008
A98a97d4-eb03-3faf-af96-c7c28f709feb
Spring 学习过程记录...
浏览量:17196
社区版块
存档分类
最新评论

Spring AOP切面编程简介

阅读更多

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在这个方法还不是很强大;


-->




0
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics