spring的核心元件
1、spring的核心類,核心元件有哪些,各有什麼作用?
BeanFactory:產生一個新的例項,可以實現單例模式
BeanWrapper:提供統一的get及set方法
ApplicationContext:提供框架的實現,包括BeanFactory的所有功能
Spring 框架中的核心元件只有三個:Core、Context 和 Beans。它們構建起了整個 Spring 的骨骼架構。沒有它們就不可能有 AOP、Web 等上層的特性功能。下面也將主要從這三個元件入手分析 Spring。
Spring 的設計理念
前面介紹了 Spring 的三個核心元件,如果再在它們三個中選出核心的話,那就非 Beans 元件莫屬了,為何這樣說,其實 Spring 就是面向 Bean 的程式設計(BOP,Bean Oriented Programming),Bean 在 Spring 中才是真正的主角
Bean 在 Spring 中作用就像 Object 對 OOP 的意義一樣,沒有物件的概念就像沒有面向物件程式設計,Spring 中沒有 Bean 也就沒有 Spring 存在的意義。就像一次演出舞臺都準備好了但是卻沒有演員一樣。為什麼要 Bean 這種角色 Bean 或者為何在 Spring 如此重要,這由 Spring 框架的設計目標決定,Spring 為何如此流行,我們用 Spring 的原因是什麼,想想你會發現原來 Spring 解決了一個非常關鍵的問題他可以讓你把物件之間的依賴關係轉而用配置檔案來管理,也就是他的依賴注入機制。而這個注入關係在一個叫 Ioc 容器中管理,那 Ioc 容器中有又是什麼就是被 Bean 包裹的物件。Spring 正是通過把物件包裝在 Bean 中而達到對這些物件管理以及一些列額外操作的目的。
它這種設計策略完全類似於 Java 實現 OOP 的設計理念,當然了 Java 本身的設計要比 Spring 複雜太多太多,但是都是構建一個數據結構,然後根據這個資料結構設計他的生存環境,並讓它在這個環境中按照一定的規律在不停的運動,在它們的不停運動中設計一系列與環境或者與其他個體完成資訊交換。這樣想來回過頭想想我們用到的其他框架都是大慨類似的設計理念。
核心元件如何協同工作
前面說 Bean 是 Spring 中關鍵因素,那 Context 和 Core 又有何作用呢?前面吧 Bean 比作一場演出中的演員的話,那 Context 就是這場演出的舞臺背景,而 Core 應該就是演出的道具了
我們知道 Bean 包裝的是 Object,而 Object 必然有資料,如何給這些資料提供生存環境就是 Context 要解決的問題,對 Context 來說他就是要發現每個 Bean 之間的關係,為它們建立這種關係並且要維護好這種關係。所以 Context 就是一個 Bean 關係的集合,這個關係集合又叫 Ioc 容器,一旦建立起這個 Ioc 容器後 Spring 就可以為你工作了。那 Core 元件又有什麼用武之地呢?其實Core 就是發現、建立和維護每個 Bean 之間的關係所需要的一些列的工具,從這個角度看來,Core 這個元件叫 Util 更能讓你理解。
它們之間可以用下圖來表示:
2、Bean的呼叫方式有哪些?
1:呼叫構造器建立Bean
2:呼叫靜態工廠方法建立Bean
3:呼叫例項工廠方法建立Bean
補充:
BeanWrapper是對Bean的包裝,其介面中所定義的功能很簡單包括設定獲取被包裝的物件,獲取被包裝bean的屬性描述器,由於BeanWrapper介面是PropertyAccessor的子介面,因此其也可以設定以及訪問被包裝物件的屬性值。BeanWrapper大部分情況下是在spring ioc內部進行使用,通過BeanWrapper,spring ioc容器可以用統一的方式來訪問bean的屬性。使用者很少需要直接使用BeanWrapper進行程式設計。
3、spring中自動裝配的方式有哪些?
4、spring的使用步驟
- 在applicationContext.xml檔案中配置bean
2.建立一個AppliCationContext物件
ApplicationContext它是BeanFactory的一個子介面,我們在使用時使用的是AppliCationContext的實現類ClassPathXmlApplicationContext
可以通過getBean(配置檔案中id名稱)來獲取指定的物件。