Spring AOP学习笔记(1)-概念
1.Aspect
横切在多个类的一个关注点,在Spring AOP中,aspect实现是一个规则的类或@Aspect标注的规则类。例如:事务管理
2.Join point
程序执行过程中的一个点,例如:执行一个方法或处理一个异常,在Spring AOP中,一个连接点表示一个方法执行执行
3.Advice
在一个特定的连接点上所采取的动作,类型包括around,before,after等,Spring中 advice就是一个interceptor模式,包括around连接点的interceptor链
4.Pointcut
切点,匹配连接点(join points),跟Advice相关,连接点就是切点表达式匹配出来的,Spring默认使用AspectJ切点表达式
5.Introduction
声明一个类型的其他方法或字段,Spring AOP允许引入新接口(和对应的实现)的任意advised对象
6.Target object
由一个或多个切面advised对象,从SpringAOP实现代理运行开始,这个对象一直是一个代理对象
7.AOP proxy
AOP框架创建的对象,该对象实现了aspect规则(advise 方法执行等),在Spring框架中,一个AOP代理就是一个JDK动态代理或CGLIB代理
8.Weaving
连接aspect和其他应用类型或对象而创建的advised 对象,它可以运行在编译时,载入时或运行时,Spring AOP在运行时执行织入操作
9.Advice 类型
Before advice:在连接点之前执行,它无法阻止AOP执行连接点(除非抛出异常)
After returning advice: 在一个连接点正常完成后执行,例如,一个方法正常返回值且未抛出异常
After throwing advice:如果一个方法因抛出异常而退出,这时就会执行该Advice
After (finally) advice: 无论方法是正常返回还是抛出异常都会执行该Advice
Around advice: 在方法before之前和after之后执行该Advice,它也可以决定是否继续向后执行或返回自定义值或抛出异常
10.AOP代理
Spring AOP默认使用标准的J2SE动态代理,它可以代理任意接口。也可以使用CGLIB代理,当一个业务对象不实现接口的情况下,默认使用CGLIB代理,但建议使用面向接口编程。