欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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方法!