先记录一下AOP的几个概念:
AOP:
首先,AOP是Aspect-Originted Programming,即面向切面编程。我觉得可以这样地简单理解,aop就是为了你更清楚的逻辑,让你的业务逻辑代码更清晰,不用去想其他事,像日志啊,权限啊这些和业务逻辑无关的东西。那要怎么用这些又很重要的功能呢?我们不用改变原来的代码,只要在另一个个地方,把这些要附加的功能打包好,然后运行的时候切进你要用这些功能的地方,aop其实大概就是这样。好的那就来看看下面的几个名词:
advice:
翻译成增强、通知,其实就是你要做的东西,你要切到你的代码中的功能。aop框架会把advice模拟成拦截器interceptor。
Join Point:
连接点,就是你可以加入功能,加入advice的地方。Spring只支持在方法或者是抛出异常的地方建立使用通知,也就是说这些地方都可以是joinpoint,像其他aop像aspectJ还可以让你在构造器或属性注入时加入advice。
Pointcut:
刚刚JoinPoint我们说了哪些地方可以用advice,但不是所有地方都要用advice啊,所以就有了这个pointcut,就是加上条件的joincut。在写代码的时候,会用类似正则表达式的方式去选择那些joinpoint来作为pointcut。
Aspect:
切面,这个可是个很重要的概念哦。其实就是advic