BeanFactory是Spring IoC容器的最基础形式,提供了基本的IoC功能。它是一个轻量级的容器,适用于资源受限的环境或对延迟加载有要求的场景。在BeanFactory中,Bean的实例化发生在第一次访问Bean时。

以下是使用BeanFactory的基本步骤:

1. 引入Spring的依赖:

在项目的构建工具(如Maven、Gradle)中,添加Spring框架的依赖。

Maven依赖示例:
<dependencies>
    <!-- Spring Core Container -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.10.RELEASE</version>
    </dependency>

    <!-- Other dependencies as needed -->
</dependencies>

2. 创建Bean类:
// HelloWorld.java
public class HelloWorld {
    private String message;

    public void setMessage(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }
}

3. 创建Spring配置文件:

创建一个Spring配置文件(通常命名为applicationContext.xml),用于配置BeanFactory和Bean。
<!-- applicationContext.xml -->
<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">

    <!-- 配置 HelloWorld Bean -->
    <bean id="helloWorld" class="com.example.HelloWorld">
        <property name="message" value="Hello, Spring World!"/>
    </bean>

</beans>

4. 编写测试类:
// HelloWorldApp.java
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.Resource;

public class HelloWorldApp {
    public static void main(String[] args) {
        // 加载Spring配置文件,创建BeanFactory
        Resource resource = new ClassPathResource("applicationContext.xml");
        BeanFactory factory = new XmlBeanFactory(resource);

        // 从容器中获取 HelloWorld Bean
        HelloWorld helloWorld = (HelloWorld) factory.getBean("helloWorld");

        // 调用 HelloWorld Bean 的方法并输出结果
        System.out.println(helloWorld.getMessage());
    }
}

5. 运行测试类:

确保项目的classpath中包含Spring框架的相关jar包,并运行HelloWorldApp.java。在控制台上,你将看到输出:Hello, Spring World!,这表明BeanFactory成功创建了HelloWorld Bean,并调用了它的方法。

需要注意的是,XmlBeanFactory在Spring 3.1版本之后已经被标记为过时(deprecated),建议使用ApplicationContext的实现类,如ClassPathXmlApplicationContext。这是因为ApplicationContext提供了更多的功能,而且在实际应用中更为常用。


转载请注明出处:http://www.pingtaimeng.com/article/detail/6934/Spring