Spring学习之Spring IoC 容器(BeanFactory 容器)(4)

IoC 容器

Spring 容器是 Spring 框架的核心。容器将创建对象,把它们连接在一起,配置它们,并管理他们的整个生命周期从创建到销毁。Spring 容器使用依赖注入(DI)来管理组成一个应用程序的组件。所有被创建的对象被称为 Spring Beans。

Srping注入:在启动spring容器加载bean的时候,完成对变量赋值的行为。

Spring IoC 容器利用 Java 的 POJO 类和配置元数据来生成完全配置和可执行的系统或应用程序。如下图:


Spring学习之Spring IoC 容器(BeanFactory 容器)(4)_第1张图片
ioc1.jpg

Spring提供了两种不同类型的容器:

  • BeanFactory:在org.springframework.beans.factory.BeanFactor中被定义,一个最简单的容器,它主要的功能是为依赖注入 (DI) 提供支持。常用的有XmlBeanFactory,从一个 XML 文件中读取配置元数据。
  • ApplicationContext:在 org.springframework.context.ApplicationContext接口被定义。 spring 中较高级的容器。除了有BeanFactory 相同功能之外,还增加了企业所需要的功能。比如,从属性文件中解析文本信息和将事件传递给所指定的监听器。
    最常被使用的 ApplicationContext 接口实现:
    (1)、FileSystemXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你需要提供给构造器 XML 文件的完整路径。
    (2)、ClassPathXmlApplicationContext:该容器从 XML 文件中加载已被定义的 bean。在这里,你不需要提供 XML 文件的完整路径,只需正确配置 CLASSPATH 环境变量即可,因为,容器会从 CLASSPATH 中搜索 bean 配置文件。
    (3)、WebXmlApplicationContext:该容器会在一个 web 应用程序的范围内加载在 XML 文件中已被定义的 bean。

BeanFactory的使用

第一步:创建一个包,分别创建两个Students.java和Main.java文件。


Spring学习之Spring IoC 容器(BeanFactory 容器)(4)_第2张图片
QQ截图20180522221859.png

其中Student.java文件代码如下所示:

private String name;
    private String school;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSchool() {
        return school;
    }

    public void setSchool(String school) {
        this.school = school;
    }

    /**
     * 自我介绍
     */
    public void selfIntroduction() {
        System.out.println("我叫: " + name + ",我来自:" + school + "小学");
    }

第二步:在resources目录下创建Beans.xml文件。文件名可以自己取。如图所示:


Spring学习之Spring IoC 容器(BeanFactory 容器)(4)_第3张图片
QQ截图20180522222417.png
Spring学习之Spring IoC 容器(BeanFactory 容器)(4)_第4张图片
QQ截图20180522222434.png

其中Beans.xml代码如下所示:



    
    
        
        
    
    

第三步:在Main.java中添加如下代码:(导入相应包)

   public static void main(String[] args) {
        XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("Beans.xml"));
        Students students = (Students) factory.getBean("students");
        students.selfIntroduction();
    }

第四步:右键运行即可看到如下显示:


Spring学习之Spring IoC 容器(BeanFactory 容器)(4)_第5张图片
QQ截图20180522222824.png

简要说明:

(1)利用框架提供的 XmlBeanFactory的API 去生成工厂 bean 以及利用 ClassPathResource() API 去加载在路径 CLASSPATH 下可用的 bean 配置文件。XmlBeanFactory() API 负责创建并初始化所有的对象,即在配置文件中提到的 bean。
(2)利用第一步生成的 bean 工厂对象的 getBean() 方法得到所需要的 bean。 这个方法通过配置文件中的 bean ID 来返回一个真正的对象,该对象最后可以用于实际的对象。一旦得到这个对象,就可以利用这个对象来调用任何方法。

你可能感兴趣的:(Spring学习之Spring IoC 容器(BeanFactory 容器)(4))