AOP概念

AOP为Aspect Oriented Programming的缩写,意为:面向方面编程,可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。

 

AOP主要应用于日志记录,性能统计,安全控制,事务处理等方面。

 

1、AOP相关概念:
      1)方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。

      2)切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。

      3)连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。

      4)通知(Advice):在特定的连接点,AOP框架执行的动作。

      5)目标对象(Target Object):包含连接点的对象,也被称作被通知或被代理对象。

      6)AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。

      7)引入(Introduction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。

      8)编织(Weaving):组装方面来创建一个被通知对象。

 

2、Java领域的AOP实现有多种方案,主要包括:
      1)AspectJ (TM):创建于Xerox PARC. 有近十年历史,技术成熟。但其过于复杂;破坏封装;而且需要专门的Java编译器,易用性较差。

      2)动态代理AOP:使用JDK提供的动态代理API或字节码Bytecode处理技术来实现。基于动态代理API的具体项目有: JBoss 4.0 JBoss 4.0服务器。
      3)基于字节码的AOP,例如:Aspectwerkz, CGlib, Spring等。 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值