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!
廣告
© . All rights reserved.