java面试之-spring ioc和aop

面试官问道这个问题基本上是想知道 是否了解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方法!

猜你喜欢

转载自827741251.iteye.com/blog/2379924