Spring框架之IoC和DI

一、IoC(Inversion of Control):

       控制反转:指的是将对象的创建权交给 Spring 去创建。使用 Spring 之前,对象的创建都是由我们自己在代码中new创建。而使用 Spring 之后。对象的创建都是由给了 Spring 框架。具体交给BeanFactory和ApplicationContext这两个容器完成。

底层实现:

Spring框架之IoC和DI_第1张图片

1、BeanFactory

          是一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持,这个容器接口在org.springframework.beans.factory.BeanFactory中被定义。常被使用的是 XmlBeanFactory 类。这个容器从一个 XML 文件中读取配置元数据,由这些元数据来生成一个被配置化的系统或者应用。现在开发常用的是ApplicationContext,它继承了BeanFactory类,因此功能方面的啥的更为强大。

2、ApplicationContext

①BeanFactory和ApplicationContext的区别:

1、BeanFactory:           老版本    调用getBean()的时候,才会产生类的实例
2、ApplicationContext:   新版本 ApplicationContext继承了BeanFactory   加载配置文件的时候就将Spring管理的类都实例化

②最常被使用的 ApplicationContext 接口实现:

1、ClassPathXmlApplicationContext: 加载类路径的配置文件
2、 FileSystemXmlApplicationContext:加载磁盘上的配置的文件
 ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");

二、DI(Dependency Injection)

     Dependency Injection,是指依赖的对象不需要手动调用 setXX 方法去设置,而是通过配置赋值。

     比如:在JavaWeb开发的过程当中,我们可以帮service层和dao层交给Spring管理。在没学习框架之前,我们都是利用service层调用到层,但是交给Spring管理之后,我们可以将到层注入近service层中。如图:


    
        
        
    
    
    
    
    

 

你可能感兴趣的:(Spring学习,spring)