详述Spring AOP 注释
1、什么是aop
aop(面向切面编程 Aspect oriented programing)是spring中可以通过预编译和运行期间动态代理程序,维护程序统一功能的一种技术。aop是oop的一种延续,是函数式编程的一种衍生泛型;通过aop可以使各个业务逻辑的功能,使他们之间的耦合度降低,提高代码的复用性。
2、怎么做
1.除了基本的springjar包外还需要引入aop jar包和aspectjweaver jar包
2.配置xml文件,aop注释配置只需要加入<aop:aspectj-autoproxy></aop:aspectj-autoproxy>,自动扫描加了@注释的通知
在通知类前,需要加入@Aspect切面和@Component泛指组件,接着在@before下写通知就好了,没个注释右边的value值表示通知放在哪些目标对象中
3、具体注释的用法实现
test类:
xml文件:
1、@Before(value="execution(* *..*.*(..))")任意用*表示,当前包用.包括子包用..
目标对象:
结果:
2、@After,@AfterReturning,@AfterThrowing
结果:
3、@Around可以包含上述所以注释
结果:
4、常用的通知参数以及方法
JoinPoint 是获取封装目标对象的信息,常用的方法有
jp.Getsignature();获取目标方法的 包名+类名+方法名 后缀有getName()和getDarlingName(),分别是获取方法名和获取包名+类名
getArgs()返回值类型为Object[],用于存放目标方法的 参数
getTarget()获取目标对象信息