網際網路架構技術面試題——Spring專題面試錦集
Spring面試問題

喜歡的朋友可以關注下專欄:Java架構技術進階。裡面有大量batj面試題集錦,還有各種技術分享,如有好文章也歡迎投稿哦。
1. 什麼是Spring?
Spring是一個反轉控制IOC和AOP的開發框架和平臺。
2. 解釋一下Spring?
1. 輕量 : Spring 在大小和透明度上是輕量的,Spring基本核心版本大概只有1M,處理開銷也非常小
2. 反轉控制Inversion of control (IoC) : Spring使用IOC實現鬆耦合,物件不是自己主動去尋找依賴而是依賴主動推給了自己。
3. 面向方面(AOP) : Spring支援面向方面程式設計,從業務邏輯中分離關注,能夠實現聚焦開發。.
4. 容器** :** Spring 容器包含和管理應用物件的生命週期。
5. 框架 : Spring提供 最核心的功能,其餘留給開發者自己開發。
3. Spring框架有哪些不同的模組?
1.核心容器模組 2.應用上下文模組Application context 3.AOP模組 4.JDBC抽象和DAO模組 5.O/R對映整合模組 6.Web 模組 7.MVC 框架模組
4. Spring框架的結構如何?

5. 什麼是核心容器模組?
提供基本功能的Spring框架。在此模組中的BeanFactory是任何基於Spring的應用程式的心臟。整個框架是建立在本模組的基礎之上。該模組生成Spring容器。
6. 什麼是應用上下文Application context模組?
應用程式上下文模組使得Spring成為了一個框架。該模組擴充套件了BeanFactory的概念,國際化(I18N)訊息,應用程式生命週期事件,和驗證提供支援。此模組還提供了許多的企業服務,例如JNDI訪問,EJB整合,遠端和排程。它還提供了其他框架的支援。
7. 什麼是AOP模組?
該AOP模組用於Spring的應用程式開發方面。提供了大部分AOP聯盟的支援,以確保Spring和其它AOP框架之間的互操作性。此模組還引入元資料程式設計。使用Spring的元資料支援我們的原始碼 ,通過引入元註釋,指導我們具體在哪裡實現方面程式設計。
8. 什麼是JDBC和DAO抽象模組?
使用這個模組,我們可以保持乾淨和簡單的資料庫的程式碼,並防止失敗關閉資料庫資源等問題。基於多個數據庫伺服器的出錯資訊之上建立的一個新的有意義的異常層。此外,該模組使用Spring的AOP模組實現事務管理。
9. 什麼是物件關係資料庫對映整合模組?
Spring支援使用一個物件/關係對映(ORM)工具,基於JDBC提供ORM模組。配合一些流行的ORM框架,包括Hibernate,JDO和iBATIS SQL對映。 Spring的事務管理也支援這些ORM框架以及JDBC。
10. 什麼是Web模組?
該模組是建立在應用上下文模組之上,提供了一個基於Web應用的上下文。此模組還包含幾個面向Web的任務,比如多個檔案上傳和將請求引數透明地繫結到你的業務物件。它也包含與Jakarta Struts的整合支援。
11. 什麼是SpringMVC?
Spring提供了一個全功能的構建Web應用程式的MVC框架。雖然Spring可以很容易地整合到其他的MVC框架,如Struts,Spring的MVC框架使用IOC將控制器邏輯從業務物件中乾淨分離。它還允許您以宣告方式繫結請求引數到你的業務物件。它還可以利用Spring的其他服務,如本地化訊息和驗證。
12. 什麼是BeanFactory?
一個BeanFactory是工廠模式的實現,使用反轉控制將從應用程式的配置和依賴性從應用程式程式碼中分離。
13. 什麼AOP聯盟?
AOP聯盟是一個開放原始碼的專案,其目標是通過定義一套通用的介面和元件在不同的AOP產品中實現AOP和互操作性推廣。
14. 什麼是Spring配置檔案?
Spring的配置檔案是一個XML檔案。此檔案中包含的類資訊,並描述這些類是如何配置,並實現相互的依賴匯入。
15. 一個簡單的Spring應用程式包括什麼?
這些應用程式像任何Java應用程式。它們是由多個類組成,每個類執行應用程式內的一個特定的功能。這些類的配置是通過一個XML檔案向對方匯入依賴。此XML檔案描述如何配置類,稱為Spring配置檔案。
16. 什麼是 XMLBeanFactory?
BeanFactory有很多實現,org.springframework.beans.factory.xml.XmlBeanFactory是其中有用常用的,它基於XML中定義載入Bean,為了建立一個 XmlBeanFactory物件 , 需要將一個 java.io.InputStream傳給他的構造器。 InputStream 提供XML檔案的讀取。
BeanFactory factory = new XmlBeanFactory(new FileInputStream("beans.xml"));
MyBean myBean = (MyBean) factory. getBean (“myBean”);
17. Spring中ApplicationContext的重要實現是什麼?
1 .ClassPathXmlApplicationContext – 這個上下文是從規定的Class路徑中載入一個XML資源。
2 .FileSystemXmlApplicationContext – 從檔案系統中載入一個XML檔案。
3 .XmlWebApplicationContext – 從一個Web應用中載入一個XML。
18. 解釋一下Bean的生命週期?
1 Spring容器從XML中發現一個Bean的定義,然後初始化建立它們
2 使用依賴注入,Spring將這個Bean中需要的屬性進行匯入。
3 如果這個Bean實現 BeanNameAware 介面, 工廠將呼叫 setBeanName() 傳遞Bean的ID。
4 如果bean實現 BeanFactoryAware,工廠將呼叫 setBeanFactory() , 將自己的例項傳給它。
5 如果這個bean有 BeanPostProcessors 關聯,他們的 post- ProcessBeforeInitialization() 方法將被呼叫。
6 如果這個Bean有一個初始init方法,它將被呼叫。
7 最後,如果有關聯物件 BeanPostProcessors , postProcessAfterInitialization() 方法將被呼叫。
19. 什麼是Beand wiring?
將Bean結合在一起是wiring. 容器將把標註wiring需要的依賴物件注入到其中,將它們繫結在一起。
20. 在Spring中如何加入一個Bean?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="foo" class="com.act.Foo"/>
<bean id="bar" class="com.act.Bar"/>
</beans>
21. 什麼是單例Bean 如何建立一個原型Bean?
將Singleton設定為false,預設它是true。
<beans>
<bean id="bar" class="com.act.Foo" singleton="false"/>
</beans>
22. bean最重要的生命週期方法是什麼?
有兩個重要的bean的生命週期方法。第一個當bean時載入到容器時設定呼叫。第二種方法是bean從容器中解除安裝時被呼叫。
23. 如何覆蓋Bean生命週期方法?
<beans>
<bean id="bar" class="com.act.Foo" init-method="fooSetup" destroy="fooTeardown"/>
</beans>
24. 什麼是內部inner Bean?
當wiring一個Bean時,如果一個bean元素被嵌入到一個屬性中,這個Bean就是內部bean。缺點是,它不能重複使用其他地方。
喜歡的朋友可以關注下專欄:Java架構技術進階。裡面有大量batj面試題集錦,還有各種技術分享,如有好文章也歡迎投稿哦。
對於現目前我這邊也整理了適合1~5年程式設計師進階的一些面試真題(含答案)還有些Java進階必備知識架構資源以及一些阿里大牛精講的視訊資源,現免費分享給大家。希望對你們有點幫助。還有學習線路知識腦圖。需要的都可以加入合作Q群Java進階之路:908676731,免費獲取。

