1. 什麼是Spring?java
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框架的結構如何?
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。缺點是,它不能重複使用其餘地方。
對於現目前我這邊也整理了適合1~5年程序員進階的一些面試真題(含答案)還有些Java進階必備知識架構資源以及一些阿里大牛精講的視頻資源,現免費分享給你們。但願對大家有點幫助。還有學習線路知識腦圖。須要的均可以加入合做Q羣Java進階之路:908676731,免費獲取。