點選上方 "JAVA開發大學營"關注, 置頂或星标一起學習
每天晚上10點00分, 我們不見不散
導讀
小編将每天整理10道經典,系統化的面試題,讓你進行學習。
每天雞湯
黑發不知勤學早,白首方悔讀書遲
責任編輯:濤哥

史上最全資料庫相關面試題(一)
史上最全資料庫相關面試題(二)
史上最全資料庫相關面試題(三)
史上最全資料庫相關面試題(四)
一、什麼是Spring架構
參考回答:
Spring架構是一個為Java應用程式的開發提供了綜合、廣泛的基礎性支援的Java平台。
Spring幫助開發者解決了開發中基礎性的問題,使得開發人員可以專注于應用程式的開發。Spring架構本身亦是按照設計模式精心打造,這使得我們可以在開發環境中安心的內建Spring架構,不必擔心Spring是如何在背景進行工作的。
二、Spring架構有哪些主要子產品?
參考回答:
Spring主要有七大功能子產品,分别是以下七大子產品:
(1)Core子產品:Core子產品是Spring的核心類庫,Spring的所有功能都依賴于該類庫,Core主要實作IOC功能,Sprign的所有功能都是借助IOC實作的。
(2)AOP子產品:AOP子產品是Spring的AOP庫,提供了AOP(攔截器)機制,并提供常用的攔截器,供使用者自定義和配置。
(3)ORM子產品:Spring 的ORM子產品提供對常用的ORM架構的管理和輔助支援,Spring支援常用的Hibernate,ibtas,jdao等架構的支援,Spring本身并不對ORM進行實作,僅對常見的ORM架構進行封裝,并對其進行管理。
(4)DAO子產品:Spring 提供對JDBC的支援,對JDBC進行封裝,允許JDBC使用Spring資源,并能統一管理JDBC事物,并不對JDBC進行實作。(執行sql語句)
(5)WEB子產品:WEB子產品提供對常見架構如WEBWORK(Struts 2),JSF的支援,Spring能夠管理這些架構,将Spring的資源注入給架構,也能在這些架構的前後插入攔截器。
(6)Context子產品:Context子產品提供架構式的Bean通路方式,其他程式可以通過Context通路Spring的Bean資源,相當于資源注入。
(7)MVC子產品:MVC子產品為Spring提供了一套輕量級的MVC實作,在Spring的開發中,我們既可以用Struts也可以用Spring自己的MVC架構,相對于Struts,Spring自己的MVC架構更加簡潔和友善。
三、Spring有哪些優點值得我們去使用參考?
參考回答:
(1)輕量級:Spring在大小和透明性方面絕對屬于輕量級的,基礎版本的Spring架構大約隻有2MB。
(2)控制反轉(IOC):Spring使用控制反轉技術實作了松耦合。依賴被注入到對象,而不是建立或尋找依賴對象。
(3)面向切面程式設計(AOP):Spring支援面向切面程式設計,同時把應用的業務邏輯與系統的服務分離開來。
(4)容器:Spring包含并管理應用程式對象的配置及生命周期。
(5)MVC架構:Spring的web架構是一個設計優良的web MVC架構,很好的取代了一些web架構。
(6)事務管理:Spring對下至本地業務上至全局業務(JAT)提供了統一的事務管理接口。
(7)異常處理:Spring提供一個友善的API将特定技術的異常(由JDBC, Hibernate, 或JDO抛出)轉化為一緻的、Unchecked異常。
四、什麼是控制反轉(IOC)?
參考回答:
IOC不是一種技術,隻是一種思想,一個重要的面向對象程式設計的法則,它能指導我們如何設計出松耦合、更優良的程式。
傳統的建立對象的方法是直接通過 new 關鍵字,而 spring 則是通過 IOC 容器來建立對象,也就是說我們将建立對象的控制權交給了 IOC 容器。IOC 讓程式員不再關注怎麼去建立對象,而是關注與對象建立之後的操作,把對象的建立、初始化、銷毀等工作交給spring容器來做。
IOC很好的展現了面向對象設計法則之一—— 好萊塢法則:“别找我們,我們找你”;即由IoC容器幫對象找相應的依賴對象并注入,而不是由對象主動去找。
五、IOC的優點是什麼?
參考回答:
IOC 或 依賴注入把應用的代碼量降到最低。它使應用容易測試,單元測試不再需要單例和JNDI查找機制。最小的代價和最小的侵入性使松散耦合得以實作。IOC容器支援加載服務時的餓漢式初始化和懶加載。
六、什麼是依賴注入(DI)?
參考回答:
依賴注入是在編譯階段尚未知所需的功能是來自哪個的類的情況下,将其他對象所依賴的功能對象執行個體化的模式。
這就需要一種機制用來激活相應的元件以提供特定的功能,是以依賴注入是控制反轉的基礎。
七、依賴注入有哪幾種方式?
參考回答:
依賴注入常用的注入方式主要有三種:
(1)構造器注入:構造器依賴注入通過容器觸發一個類的構造器來實作的,該類有一系列參數,每個參數代表一個對其他類的依賴。
(2)setter方法注入: Setter方法注入是容器通過調用無參構造器或無參static工廠 方法執行個體化bean之後,調用該bean的setter方法,即實作了基于setter的依賴注入。
(3)接口注入:它是在一個接口中定義需要注入的資訊,并通過接口完成注入。Apache Avalon 是一個較為典型的接口注入型 IOC 容器,WebWork 架構的 IoC 容器也是接口注入型。一般不推薦使用這種方式進行實作。
八、哪種依賴注入方式你建議使用,構造器注入,還是 Setter方法注入,甚至是接口注入?
參考回答:
你兩種依賴方式都可以使用,構造器注入和Setter方法注入。最好的解決方案是用構造器參數實作強制依賴,setter方法實作可選依賴。
九、什麼是Spring beans?
參考回答:
Spring beans 是那些形成Spring應用的主幹的java對象。它們被Spring IOC容器初始化,裝配,和管理。這些beans通過容器中配置的中繼資料建立。比如,以XML檔案中<bean/> 的形式定義。
Spring 架構定義的beans都是單件beans。在bean tag中有個屬性”singleton”,如果它被賦為 TRUE,bean 就是單件,否則就是一個 prototype bean。預設是TRUE,是以所有在Spring架構中的beans 預設都是單 件。
十、一個 Spring Bean 定義 包含什麼?
參考回答:
一個Spring Bean 的定義包含容器必知的所有配置中繼資料,包括如何建立一個bean,它的生命周期詳情及它的依賴。
掃碼關注最新動态
關鍵時刻,第一時間送達
- END -
點個在看是最大的支援