即为把业务无关的功能模块提取出来,如日志模块,安全模块,事务模块
Spring对AOP的实现包括以下三种方式:
第一种方式:Spring框架结合AspectJ框架实现的AOP,基于注解方式
第二种方式:Spring框架结合AspectJ框架实现的AOP,基于XML方式
第三种方式:Spring框架自己实现的AOP,基于XML配置方式
使用Spring+Aspect的AOP注解开发需要引入依赖如下
其中引入context依赖自动引入AOP依赖
在spring中添加四条,复制然后改动单词即可
进行组件扫描
在切面类加入切面注解,写一段增强代码,在方法之前加上出现的位置,并配上切点表达式即可
在配置文件中开启动态代理
环绕通知需要一个连接点,ProceedingJoinPoint参数
环绕是最大的通知,前置之前,后置之后(也比最终通知晚)
在发生异常通知后,后置通知和后环绕通知不会出现
注释切面顺序可以用@order注解,表明多个切面的顺序
通用节点表达式,便于更改
其实除了环绕通知,其他四个都可以传入连接点,可以获得目标方法的签名
注意:用||连接多个表达式,表示或
Spring AOP全注解开发
新建一个类,代替配置文件,包含扫描的包和启动自动代理
测试代码如下
简单了解AOP在xml中的实现