天天看点

AOP简介和实现概念动态代理开发:Aspect J开发:(推荐使用基于注解的声明式)

概念

AOP面向切面编程是OOP面向对象编程的一种补充。通常用作事务处理,日志,异常,权限操作。采用的是横向抽取机制,将分散在各个方法中的重复代码提取出来,然后在程序编译或运行时,再进行按需加载。从而使开发人员专注于核心业务,而不必过多的关心其他业务逻辑的实现。主流的框架有两个,一个是Spring AOP(采用的是纯java实现,在运行时通过代理的方式向目标类植入增强的代码),另一个是Aspect J(基于java的AO框架,在编译时期提供横向代码切入)

动态代理开发:

JDK动态代理:使用动态代理的对象必须实现一个或者是多个接口

CGLB代理:采用的是字节码技术

基于代理类:

Aspect J开发:(推荐使用基于注解的声明式)

基于XML的声明式:在<aop:config>中配置切面,切入点和增强。若切入点是配置在切面类,表示该切入点只对当前切面有效。若是配置在<aop:config>下表示该切入点是全局切入点,可被多个切面共享。

基于注解的声明式: