首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Spring AOP与动态署理

2013-10-18 
Spring AOP与动态代理简介AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补

Spring AOP与动态代理

       简介

       AOP(Aspect Orient Programming),也就是面向方面编程,作为面向对象编程的一种补充,相对于面向对象的编程,它更注重于对象层次结构方面的东西。    与传统的OOP纵向编程思想相比,AOP更强调横向编程,AOP的出现恰恰就是对OOP出了完美的补充。在事务管理、安全检查、缓存、对象池管理等,AOP已经成为一种非常常用的解决方案。

       利用动态代理实现AOP

       在使用Spring实现AOP之前,先看一下静态代理,已经Java的动态代理。

(一) 静态代理:

包图

Spring AOP与动态署理

利用,代理接口(Subject)、代理类(ProxySubject)、委托类(RealSubject),现实对RealSubject的访问控制,由于静态代理比较简单,代码略。

静态代理对象的一个接口只服务于一种类型的对象,如果要代理的方法很多,势必要为每一种方法都进行代理,静态代理在程序规模稍大时就无法胜任了。动态代理类的源码是在程序运行期间由JVM根据反射等机制动态的生成。

(二) 动态代理

接口类:


普通类:

<aop:config>     <aop:aspect id="myAop" ref="check">       <aop:pointcut id="target" expression="execution(* com.spring.aop.Common.execute(..))"/>       <aop:before method="checkValidity" pointcut-ref="target"/>       <aop:after method="addLog" pointcut-ref="target"/>     </aop:aspect>   </aop:config>


热点排行