AOP :面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术
主要功能:日志记录、性能统计、安全控制、事物处理、异常处理……
实现方式:
预编译 - AspectJ
运行期动态代理(JDK动态代理、CGLib动态代理) - SpringAOP、JbossAOP
相关概念:切面(Aspect)、连接点(Joinpoint)、通知(Advice)、切入点(Pointcut)、引入(Introduction)、目标对象(Target Object)、AOP代理(AOP Proxy)、织入(Weaving)
Advice:前置通知(Before advice)、返回后通知(After returning advice)、抛出异常后通知(After throwing advice)、后通知(After advice)、环绕通知(Around advice)
SpringAOP不是为了提供完整的AOP实现,而是提供一种AOP实现和Spring IOC容器之间的整合
SpringAOP不会与AspectJ竞争
有接口的Spring AOP默认使用标准的JavaSE动态代理
无接口的Spring AOP 可以使用CGLib代理
--------------------------------------------------------------------------------------------------------
<aop:config>
<aop:aspect id="" ref="">
<aop:pointcut id="" expression=""/>
</aop:aspect >
</aop:config>