- Spring DI 教程
- Spring DI - 首頁
- Spring DI - 概述
- Spring DI - 環境設定
- Spring DI - IOC容器
- Spring 依賴注入
- Spring DI - 建立專案
- 基於構造器的注入示例
- Spring DI - 基於構造器的注入
- Spring DI - 內部Bean構造器注入
- Spring DI - 集合構造器注入
- Spring DI - 集合引用構造器注入
- Spring DI - Map構造器注入
- Spring DI - Map引用構造器注入
- 基於Setter的注入示例
- Spring DI - 基於Setter的注入
- Spring DI - 內部Bean Setter注入
- Spring DI - 集合Setter注入
- Spring DI - 集合引用Setter注入
- Spring DI - Map Setter注入
- Spring DI - Map引用Setter注入
- 自動裝配示例
- Spring DI - 自動裝配
- Spring DI - 按名稱自動裝配
- Spring DI - 按型別自動裝配
- Spring DI - 構造器自動裝配
- 工廠方法
- Spring DI - 靜態工廠方法
- Spring DI - 非靜態工廠方法
- Spring DI 有用資源
- Spring DI - 快速指南
- Spring DI - 有用資源
- Spring DI - 討論
Spring DI - BeanFactory容器
這是最簡單的容器,提供DI的基本支援,由org.springframework.beans.factory.BeanFactory介面定義。BeanFactory和相關的介面,例如BeanFactoryAware、InitializingBean、DisposableBean,仍然存在於Spring中,目的是為了與大量與Spring整合的第三方框架向後相容。
Spring自帶了許多BeanFactory介面的實現。最常用的BeanFactory實現是XmlBeanFactory類。此容器從XML檔案讀取配置元資料,並使用它來建立一個完全配置的系統或應用程式。
在資源有限的情況下,例如移動裝置或基於applet的應用程式,通常首選BeanFactory。因此,除非您有充分的理由不這樣做,否則請使用ApplicationContext。
示例
讓我們更新在Spring DI - 建立專案章節中建立的專案。我們將新增以下檔案:
HelloWorld.java - 一個依賴類。
MainApp.java - 執行和測試的主應用程式。
以下是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();
}
}
關於主程式,需要注意以下兩點:
第一步是建立一個工廠物件,我們使用框架API XmlBeanFactory()建立工廠bean,並使用ClassPathResource() API載入CLASSPATH中可用的bean配置檔案。XmlBeanFactory() API負責建立和初始化配置檔案中提到的所有物件,即bean。
第二步是使用建立的bean工廠物件的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!