spring面試題(一)
目錄
16.Bean工廠和ApplicationContext有什麼區別
1.什麼是spring
spring是個java企業級應用開源框架。主要用來開發java應用和java web應用。
目的是簡化java企業級應用開發,以POJO為基礎的程式設計模型促進良好的程式設計習慣。
2.使用spring框架的好處是什麼
輕量:Spring 是輕量的,基本的版本大約2MB。
控制反轉:Spring通過控制反轉實現了鬆散耦合,物件們給出它們的依賴,而不是建立或查詢依賴的物件們。
面向切面程式設計:Spring支援面向切面的程式設計,並且把應用業務邏輯和系統服務分開。
容器:Spring 包含並管理應用中物件的生命週期和配置。
MVC框架:Spring的WEB框架是個精心設計的框架,是Web框架的一個很好的替代品。
事務管理:Spring 提供一個持續的事務管理介面,可以擴充套件到上至本地事務下至全域性事務(JTA)。
異常處理:Spring 提供方便的API把具體技術相關的異常(比如由JDBC,Hibernate or JDO丟擲的)轉化為一致的unchecked 異常
3.spring由哪些模組組成
- Core module
- Bean module
- Context module
- Expression Language module
- JDBC module
- ORM module
- OXM module
- Java Messaging Service(JMS) module
- Transaction module
- Web module
- Web-Servlet module
- Web-Struts module
- Web-Portlet module
4.核心容器(應用上下文)模組
這是基本的Spring模組,提供spring 框架的基礎功能,BeanFactory 是 任何以spring為基礎的應用的核心。
Spring 框架建立在此模組之上,它使Spring成為一個容器。
5.BeanFactory實現舉例
org.springframework.beans.factory.BeanFactory
Bean 工廠是工廠模式的一個實現,提供了控制反轉功能,用來把應用的配置和依賴從真正的應用程式碼中分離。
最常用的BeanFactory 實現是XmlBeanFactory 類。
6.XMLBeanFactory
org.springframework.beans.factory.xml.XmlBeanFactory
它根據XML檔案中的定義載入beans。該容器從XML 檔案讀取配置元資料並用它去建立一個完全配置的系統或應用。
7.解釋AOP模組
AOP模組用於發給我們的Spring應用做面向切面的開發, 很多支援由AOP聯盟提供,這樣就確保了Spring和其他AOP框架的共通性。
這個模組將元資料程式設計引入Spring。
8.解釋JDBC抽象和DAO模組
通過使用JDBC抽象和DAO模組,保證資料庫程式碼的簡潔,並能避免資料庫資源錯誤關閉導致的問題;
它在各種不同的資料庫的錯誤資訊之上,提供了一個統一的異常訪問層。
它還利用Spring的AOP 模組給Spring應用中的物件提供事務管理服務。
9.解釋物件/關係對映整合模組
Spring 通過提供ORM模組,支援我們在直接JDBC之上使用一個物件/關係對映對映(ORM)工具;
Spring 支援整合主流的ORM框架,如Hiberate,JDO和 iBATIS SQL Maps。Spring的事務管理同樣支援以上所有ORM框架及JDBC。
10.解釋WEB模組
Spring的WEB模組是構建在application context 模組基礎之上,提供一個適合web應用的上下文。
這個模組也包括支援多種面向web的任務,如透明地處理多個檔案上傳請求和程式級請求引數的繫結到你的業務物件。
它也有對Jakarta Struts的支援。
11.Spring配置檔案
Spring配置檔案是個XML 檔案,這個檔案包含了類資訊,描述瞭如何配置它們,以及如何相互呼叫。
13.什麼是Spring IOC容器
Spring IOC 負責建立物件,管理物件(通過依賴注入(DI),裝配物件,配置物件,並且管理這些物件的整個生命週期。
14.IOC的優點是什麼
IOC 或 依賴注入把應用的程式碼量降到最低。
它使應用容易測試,單元測試不再需要單例和JNDI查詢機制。
最小的代價和最小的侵入性使鬆散耦合得以實現。
IOC容器支援載入服務時的餓漢式初始化和懶載入。
15.ApplicationContext通常的實現是什麼
- FileSystemXmlApplicationContext :此容器從一個XML檔案中載入beans的定義,XML Bean 配置檔案的全路徑名必須提供給它的建構函式。
- ClassPathXmlApplicationContext:此容器也從一個XML檔案中載入beans的定義,這裡,你需要正確設定classpath因為這個容器將在classpath裡找bean配置。
- XmlWebApplicationContext:此容器載入一個XML檔案,此檔案定義了一個WEB應用的所有bean。
16.Bean工廠和ApplicationContext有什麼區別
ApplicationContexts提供一種方法處理文字訊息,通常做法是載入檔案資源(比如映象),它們可以向註冊為監聽器的bean釋出事件。
另外,在容器或容器內的物件上執行的那些不得不由bean工廠以程式化方式處理的操作,可以在Application contexts中以宣告的方式處理。ApplicationContexts實現了MessageSource介面,該介面的實現以可插拔的方式提供獲取本地化訊息的方法。
17.一個Spring的應用看起來像什麼?
- 一個定義了一些功能的介面。
- 這實現包括屬性,它的Setter , getter 方法和函式等。
- Spring AOP。
- Spring 的XML 配置檔案。
- 使用以上功能的客戶端程式。