1. 如何解决循环依赖
- prototype不做缓存,无法提前初始化,因此无法解决
- 构造器注入,由于无法提前初始化,因此无法解决
- singleton,采用三级缓存,提前初始化自身(并不是完整初始化,属性还没有注入),保存在第三级缓存
2. 什么是AOP
面向切面编程,动态地将代码切入到类的指定方法、指定位置上,而原有逻辑不感知
3. Join point 和 Point cut
join point
是连接点,可以进行横向切入的位置
point cut
是符合切点表达式的连接点,也就是真正被切入的地方,切点有助于缩小切面所通知的连接点范围
所有的方法执行都是join point
而 point cut
(哪些方法可以被切入) 是一个描述信息, 它修饰的是 join point, 通过 point cut, 我们就可以确定哪些 join point 可以被织入 Advice. 因此 join point 和 point cut 本质上就是两个不同纬度上的东西.
advice 是在 join point 上执行的, 而 point cut 规定了哪些 join point 可以执行哪些 advice,advice
描述了在何时可以执行point cut
4. 什么是切面 Aspect
借助Spring框架的帮助,业务模块被合理的纵向分割,彼此之间互相独立
而将这些纵向柱形的业务模块共同的,重复的部分横向切分放大,就称之为切面
网友评论