使用AOP可以在如插入数据,删除数据,输出日志时,减少代码量,减少修改成本。
AOP面向切面编程
pom需引用
1首先定义接口
2实现该接口
3处理AOP的类
需要导入 org.aspectj.lang.*
org.aspectj.lang.annotation.*
execution为切面表达式
@Pointcut:来声明切入点表达式,后面的其他通知直接使用方法名来引用当前的切入点表达式。
@Before:前置通知
@After:后置通知
@AfterReturning:返回通知
@AfterThrowing:异常通知
@Around:环绕通知
ps:Spring AOP 前置通知 后置通知 异常通知 返回通知 以及环绕通知 - 我表情悠哉 - 博客园
Java动态代理之InvocationHandler - 知乎
4代理(Proxy)
target指定我们要通知的类
loader用类加载器加载此类
interfaces为此类实现的接口,可以为多个接口
InvocationHandler类似以前静态代理的作用,可以输出参数,值
Proxy.newProxyInstance创建出该类的代理对象
5 applicationContext.xml
自动装配mp包下的bean实例
<context:component-scan base-package="mp"></context:component-scan>
自动完成创建代理织入切面的工作,为那些用了@aspectj的类自动装备bean实例
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
6 Test测试