系列二、Spring IOC

一、什么是IOC?有什么作用?优点是什么?

        IOC是控制反转的意思,即将创建对象的控制权交给了Spring的IOC,以前是由程序员自己去创建控制对象,现在交由Spring的IOC去创建控制,如果要去使用对象,通过依赖注入就可以使用对象。优点:集中管理对象,方便维护,降低耦合度。

二、Spring IOC的实现机制是什么***

工厂模式 + 反射。

三、IOC和DI的区别是什么?**

        IOC是控制反转,即把对象的创建控制交由Spring管理,以前是程序员自己管理的,耦合度比较高,不易维护和扩展,DI是IOC的实现,是IOC不可分割的一部分,用于给bean中注入各种属性,完成bean的初始化工作。 

四、紧耦合和松耦合有什么区别?如何编写松耦合的代码?**

4.1、紧耦合

紧耦合是指类之间的高度依赖。

4.2、松耦合

松耦合是指通过促进单一职责和关注点分类、依赖倒置的设计原则来实现的。

五、BeanFactory的作用 *

  • BeanFactory是Spring中非常核心的一个顶层接口;
  • 它是Bean的工厂,它的主要职责就是生产Bean;
  • 它实现了简单工厂的设计模式,通过调用getBean()传入标识生产一个Bean;
  • 它有非常多的实现类,每个工厂都有不同的职责(单一职责),最强大的工厂是DefaultListableBeanFactory,Spring底层就是使用该类进行生产Bean;
  • BeanFactory也是一个容器,管理着Bean的生命周期;

六、BeanDefinition的作用 *

        BeanDefinition是用来定义Bean的基本信息的,决定了Bean以何种方式生产,例如:applicationContext.xml中有如下配置


    

后续BeanFactory就可以根据这些配置信息去生产Bean。

七、BeanFactory和ApplicationContext有什么区别 **

7.1、相同点

都可以作为容器。

7.2、区别

  • FactoryBean用于生产Bean;
  • ApplicationContext实现了FactoryBean,但是它不生产Bean,而是通过FactoryBean来进行生产,有点儿类似于汽车4S店和汽车工厂,4S店不生产汽车,真正生产汽车的是工厂,它的getBean()方法只是一个门面,做的事情更多,例如:
    (1)会自动帮我们配置的Bean注册进来
    (2)加载环境变量
    (3)支持多语言
    (4)实现事件监听
    (5)注册很多对外扩展点

7.3、关系

ApplicationContext实现了FactoryBean。

八、说下Spring IOC容器的加载过程 *****

TODO

你可能感兴趣的:(Spring全家桶面试系列,1024程序员节)