切面由切点(PointCut)和增强(Advice)两部分组成;
一、AOP概念
关注点(方面)、切面、通知、切入点、目标的对象、代理对象、织入
1.切面(Aspect):切入业务流程的一个独立模块,一个完整的业务的实现,如日志切面、事务切面、安全验证切面;
2.通知(Advice):切面的具体实现。以目标方法为参照点,可分为前置通知(Before)、后置通知(AfterReturning)、异常通知(AfterThrowing)、最终通知(After)和环绕通知(Around)五种。实现方法具体属于哪类通知,是在配置文件和注解中指定的。
3.切入点(Pointcut):用于定义通知应该织入到哪些连接点上;
4.目标的对象(Target):将被织入切面的对象,即被通知的对象;
5.代理对象(Proxy):将通知应用到目标对象之后,被动创建的对象;
6.织入(Weaving):创建代理对象的过程,将切面应用到目标对象从而创建一个新的代理对象的过程。这个过程可以发生在编译期、类装载期及运行期。
7.连接点(Join point):执行点+方位
二、Spring AOP的实现方式
1.基于代理类ProxyFactoryBean
参数:ProxyInterface、intercepterNames、trget
2.基于Schema
3.基于@AspectJ注解