Spring BeanFactory 容器
这是为 DI 提供基本支持的最简单的容器,由 org.springframework.beans.factory.BeanFactory 接口定义。 Spring中仍然存在BeanFactory及其相关接口,如BeanFactoryAware、InitializingBean、DisposableBean,目的是为了向后兼容大量与Spring集成的第三方框架。
有许多 BeanFactory 接口的实现直接随 Spring 提供。 最常用的 BeanFactory 实现是 XmlBeanFactory 类。 此容器从 XML 文件中读取配置元数据,并使用它来创建完全配置的系统或应用程序。
在资源有限的情况下,如移动设备或基于小程序的应用程序,BeanFactory 通常是首选。 因此,除非您有充分的理由不这样做,否则请使用 ApplicationContext。
示例
让我们看看一个可以工作的 Eclipse IDE,然后按照以下步骤创建一个 Spring 应用程序 −
步骤 | 描述 |
---|---|
1 | 创建一个名为 |
2 | 使用添加外部 JAR 选项添加所需的 Spring 库,如 Spring Hello World 示例一章中所述。 |
3 | 在 com.tutorialspointpackage 下创建 Java 类 HelloWorld 和 MainApp。 |
4 | 在 src 文件夹下创建 Beans 配置文件 Beans.xml。 |
5 | 最后一步是创建所有Java 文件的内容和Bean 配置文件。 最后,按照下面的说明运行应用程序。 |
这是 HelloWorld.java 文件的内容 −
package com.tutorialspoint; public class HelloWorld { private String message; public void setMessage(String message){ this.message = message; } public void getMessage(){ System.out.println("Your Message : " + message); } }
下面是第二个文件MainApp.java的内容
package com.tutorialspoint; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.xml.XmlBeanFactory; import org.springframework.core.io.ClassPathResource; public class MainApp { public static void main(String[] args) { XmlBeanFactory factory = new XmlBeanFactory (new ClassPathResource("Beans.xml")); HelloWorld obj = (HelloWorld) factory.getBean("helloWorld"); obj.getMessage(); } }
主程序需要注意以下两个要点 −
第一步是创建一个 factory 对象,我们使用框架 APIXmlBeanFactory() 创建 factory bean,并使用 ClassPathResource() API 加载 CLASSPATH 中可用的 bean 配置文件。 XmlBeanFactory() API 负责创建和初始化所有对象,即配置文件中提到的 bean。
第二步是使用创建的 bean factory 对象的 getBean() 方法来获取需要的 bean。 该方法使用 bean ID 返回一个通用对象,最终可以转换为实际对象。 一旦你有了对象,你就可以使用这个对象来调用任何类的方法。
以下是 bean 配置文件 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-3.0.xsd"> <bean id = "helloWorld" class = "com.tutorialspoint.HelloWorld"> <property name = "message" value = "Hello World!"/> </bean> </beans>
创建完源文件和 bean 配置文件后,让我们运行应用程序。 如果您的应用程序一切正常,它会打印以下消息 −
Your Message : Hello World!