我爱编程

Spring学习之Spring IoC 容器(BeanFacto

2018-05-22  本文已影响24人  北有花开

IoC 容器

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

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

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


ioc1.jpg

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

BeanFactory的使用

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


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文件。文件名可以自己取。如图所示:


QQ截图20180522222417.png QQ截图20180522222434.png

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

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd">
    
    <bean id="students" class="com.hunter.bean.Students">
        <property name="name" value="小明"/>
        <property name="school" value="清华"/>
    </bean>
    
</beans>

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

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

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


QQ截图20180522222824.png

简要说明:

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

上一篇 下一篇

猜你喜欢

热点阅读