文章目录
Spring AOP 面试难点总结
Spring AOP 经常是各大面试官必提的知识点。我这里总结了 AOP 的各种关键知识点,希望能帮助到大家。
AOP
它能做什么:事务、安全、日志、缓存.
以前都是OOP的思想下编程模型,一切都是面向对象,显得井然有序,但某一天发现许多对象逻辑里有相同的代码逻辑或片段,比如记录日志、用户权限验证,他们都是做同样的事,这样,第一是觉得这样的代码对于有洁癖的人看起来是很反感的,再者若这些代码涉及改动时所有用到的点都要改。但又发现这些需要植入的地方只是一些关键地方。
那么,是否有一种方法使这些方法执行前或后再做点什么呢。方法是有的,目前比如有直接字节码操作、代理技术等来实现,字节码技术就是在编译时通过修改字节码的方式将需要植入的逻辑编译进去,只是我们编写时无需编写这些逻辑,这样的编译植入过程交由一个编译工具去做。代理技术与直接字节码操作技术的不同点在于它会另外生成一个代理类对目标类进行代理,然后在方法前或后加入希望的逻辑。
Aspect
切面定义,切面里面包含了对植入点,植入逻辑的定义。Aspect是一个切面的定义,一个切面里面定义了切入点(JoinPoint)、切入方式(PointCut)、切入点的逻辑(Advice),一个@Aspect类被解析成一个切面。
Advisor
Poin