
回复
1、先来 AOP
AOP是一种编程思想,是面对对象编程(OOP)的补充。 面向对象的编程将程序抽象为各个级别的对象,而面向切面的编程则将程序抽象为各个切面。
从该图可以很形象地看出,所谓切面,相当于应用对象间的横切点,我们可以将其单独抽象为单独的模块。
2、AOP的实现
【重要】:使用AOP需要导入依赖包
方式一:使用Spring的API接口【主要SpringAPI接口实现】
xml配置:
需要切入的类(实现aop包下的接口MethodBeforeAdvice、AfterReturningAdvice等)
方式二:自定义类来实现AOP【主要是切面定义】
自定义类:
xml配置:
方式三:使用注解实现
使用注解实现的切面类:
xml配置:
测试类
测试结果:
环绕前
整个表达式可以分为五个部分:
1、execution()::表达式主体。
2、第一个*号:表示返回类型, *号表示所有的类型。
3、包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.sample.service包、子孙包下所有类的方法。
4、第二个号:表示类名,号表示所有的类。
5、(..):最后这个星号表示方法名,号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数