1. 程式人生 > >Spring最核心的功能是什麽?使用Spring框架的最核心的原因是什麽?

Spring最核心的功能是什麽?使用Spring框架的最核心的原因是什麽?

ram 發現 最終 文件 font 手冊 tab bean ext

quote:Spring最核心的功能是什麽?使用Spring框架的最核心的原因是什麽? (IT公司面試手冊,可以多看看)

spring 框架中核心組件有三個:Core、Context 和 Beans。其中最核心的組件就是Beans, Spring提供的最核心的功能就是Bean Factory。

Spring 解決了的最核心的問題就是把對象之間的依賴關系轉為用配置文件來管理,也就是Spring的依賴註入機制。這個註入機制是在Ioc 容器中進行管理的。

Bean 組件是在 Spring 的 org.springframework.beans 包下。這個包主要解決了如下功能:Bean 的定義、Bean 的創建以及對 Bean 的解析。對 Spring 的使用者來說唯一需要關心的就是 Bean 的創建,其他兩個由 Spring 內部機制完成。 Spring Bean 的創建采用典型的工廠模式,他的頂級接口是 BeanFactory。

BeanFactory 有三個子類:ListableBeanFactory、HierarchicalBeanFactory 和 AutowireCapableBeanFactory。但是從上圖中我們可以發現最終的默認實現類是 DefaultListableBeanFactory,他實現了所有的接口。那為何要定義這麽多層次的接口呢?查閱這些接口的源碼和說明發現,每個接口都有他使用的場合,它主要是為了區分在 Spring 內部在操作過程中對象的傳遞和轉化過程中,對對象的數據訪問所做的限制。例如 ListableBeanFactory 接口表示這些 Bean 是可列表的,而 HierarchicalBeanFactory 表示的是這些 Bean 是有繼承關系的,也就是每個 Bean 有可能有父 Bean。AutowireCapableBeanFactory 接口定義 Bean 的自動裝配規則。這四個接口共同定義了 Bean 的集合、Bean 之間的關系、以及 Bean 行為。

Bean 的定義就是完整的描述了在 Spring 的配置文件中你定義的 <bean/> 節點中所有的信息,包括各種子節點。當 Spring 成功解析你定義的一個 <bean/> 節點後,在 Spring 的內部他就被轉化成 BeanDefinition 對象。以後所有的操作都是對這個對象完成的。Bean 的解析過程非常復雜,功能被分的很細,因為這裏需要被擴展的地方很多,必須保證有足夠的靈活性,以應對可能的變化。Bean 的解析主要就是對 Spring 配置文件的解析。

Spring最核心的功能是什麽?使用Spring框架的最核心的原因是什麽?