详述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类

详述Spring AOP 注释

xml文件:

详述Spring AOP 注释

1、@Before(value="execution(* *..*.*(..))")任意用*表示,当前包用.包括子包用..

详述Spring AOP 注释

目标对象:

详述Spring AOP 注释

结果:

详述Spring AOP 注释

2、@After,@AfterReturning,@AfterThrowing

详述Spring AOP 注释

结果:

详述Spring AOP 注释

3、@Around可以包含上述所以注释

详述Spring AOP 注释

详述Spring AOP 注释

结果:

详述Spring AOP 注释

4、常用的通知参数以及方法

JoinPoint 是获取封装目标对象的信息,常用的方法有

jp.Getsignature();获取目标方法的 包名+类名+方法名 后缀有getName()和getDarlingName(),分别是获取方法名和获取包名+类名

getArgs()返回值类型为Object[],用于存放目标方法的 参数

getTarget()获取目标对象信息