增强就是通过切入点给指定的方法添加额外的功能,我们这里的增强加入就是一个日志输出的功能
相应的application.xml中的配置:
切入点是满足条件的一堆类,而连接点是切入点的类中正在被执行的类
我这里给的连接点是public下的所以返回类型biz包及其子包下的不限参数类型的所有方法:
有了增强和切入点,下面就可以进行织入了
将增强(TestLogger下的beforeLogger方法和afterReturningLogger方法)织入到配置好的连接点,这里aop:before表示将增强放在连接点的前面,即连接点方法一开始就会执行增强,相应的,aop:after-returning表示在连接点方法结束执行
实际中,经常需要获得哪个类哪个方法正在被执行,因此需要获得连接点的信息,这时候就需要在增强中加入JoinPoint这个参数,来获得连接点的信息,即JoinPoint中其实就是携带了连接点的信息
getTarget()方法用来获得连接点这个类本身;
getSignature().getName()方法用来获得方法名;
getArgs()用来获得参数列表,是一个数组类型
可以看到,aop after-returning可以多一个参数Obeject,用来获取连接点的返回值,但是需要在application.xml中进行配置