java面试之-spring ioc和aop
程序员文章站
2022-03-12 22:05:40
...
面试官问道这个问题基本上是想知道 是否了解aop 和ioc的基本概念, 以及大体的实现机制等, 因此我们在回答这个问题时应当首相将概念回答一下, 其次就是应用场景 最后在回答下实现方式等基本ok了
1概念:
首先讲下aop, aop是和oop对等的一个概念, oop面向对象编程 而 aop是面向切面编程 , 从本质上来讲 oop和aop都是编程思想,oop关注的是对象直接的调用关系和模块之间直接的业务联系 ,属于纵向行为; aop更关注于模块之间对象行为发生时的问题(业务调用和逻辑), 我们可以将这些公共的处理逻辑抽取出来作为一个面,属于横向行为。
ioc 控制反转/依赖注入, 主要是对象的解耦,将对对象的控制权交给容器,包括对象的创建和销毁等,我们只需要关注业务逻辑,重要的是 ioc是一种思想!
ioc容器对bean的管理方式:
1>beanFactory ; 2>applicationContext; 注意 applicationContext extends beanFactory!
2应用:
aop的主要作用 监控函数/业务逻辑的调用,异常发生等问题,实际应用于 事物,安全和日志等横切关注!
3aop的实现方式:
使用jdk的动态代理 和 cglib 注意: 对于有接口的类aop是使用jdk的动态代理, 而对于无接口的类或者是抽象类使用cglib, 虽然cglib均可代理,但是其复杂效率低,不能有final方法!
上一篇: 探索李重茂皇位的正统性,他为什么让位?
下一篇: Java五种方式实现多线程循环打印问题