SpringAOP
面向切面的编程:把程序重复的代码抽取出来,在需要执行的时候,使用动态代理技术在不修改源代码的基础上对已有方法进行增强。
知识点:
● Aspect
表示切面。切入业务流程的一个独立模块。一个应用程序可以拥有任意数量的切面。
● Join point
表示连接点。也就是业务流程在运行过程中需要插入切面的具体位置(被拦截到的点。spring中具体指类的方法)。
● advice
前置通知(Before)
后置通知(AfterReturning) :在目标成功之后执行
异常通知(AfterThrowing) :在代码异常时执行
最终通知(After):在执行方法后执行
环绕通知(Around)
举例子:
- 基础功能
- 在原有基础上进行增加功能,实现的样子如下:
- 先写一个Aspect.java类,切面类
- 在主函数中实例化
用注解@Bean进行实例化之后MyAspect中的代码都属于监听状态,然后当Controller层要调用printUser这个方法时,MyAspect中的@Before就会监听到,在printUser这个方法执行之前进行执行。
- 定义切点,Pointcut,简化表达式