天天看點

Spring-Context之四:Spring容器及bean的定義

Spring容器接口是BeanFactory,其提供了一些方法來配置和管理對象。ApplicationContext是BeanFactory的子接口,它內建了Spring的AOP特性,資訊資源管理(用于全球化),公共事件等。簡單的說,BeanFactory提供了配置架構及基本的功能,而ApplicationContext增加了更多的企業級定制功能。比如其實作類WebApplicationContext可用于web應用程式中。

在Spring中,應用程式中受Spring IoC容器管理的對象叫做bean,即bean是一個由Spring IoC容器執行個體化、裝配及其它管理的對象。下圖是Spring IoC容器的一個簡單圖解。

Spring-Context之四:Spring容器及bean的定義

以下列出了幾個常用的實作了ApplicationContext的容器對象。

AnnotationConfigApplicationContext :接收注解的class作為輸入來初始化配置。

GenericGroovyApplicationContext: 根據Groovy DSL來初始化配置。

ClassPathXmlApplicationContext:根據目前classpath下的xml檔案初始化配置。

FileSystemXmlApplicationContext:根據檔案系統路徑下的xml檔案初始化配置。

Bean的定義有多種方式,XML定義,Annoation定義,Java代碼直接定義,Groovy DSL定義等。之前例子基本都示範過這些定義方法。

一個簡單的XML定義是這樣的。

其包含一個id和一個class。id是一個bean的唯一标示,同一個spring容器中不能有兩個id一樣的bean,不過你也可以給bean起别名,使用name屬性即可,多個别名可以用逗号,分号或空格分開。

也可以使用alisa來起别名。

如果你的bean的執行個體不是通過構造函數直接生成的,而是通過工廠方法生成那,那麼也有相應的配置方法。

MovieServiceFactory

如果bean對象是由一個執行個體工廠生成的,那麼應該這樣配置。

MovieServiceLocator