不少公司再面試的時候都會問到:Spring是什麼,都有哪些優勢?面試
小博老師建議這兩個問題能夠這麼回答:spring
1. Spring是一個輕量級的IoC和AOP容器框架。編程
IoC:當一個角色須要另一個角色協助的時候,在傳統的程序設計中,一般由調用者來建立被調用者的實例。可是在spring中,建立被調用者將再也不由調用者內部完成,而是由Spring來完成,所以叫控制反轉。在容器實例化對象的時候主動的將被調用者(或者說它的依賴對象)注入給調用對象,所以又叫依賴注入。框架
AOP:Spring對面向切面編程提供了強有力的支持,經過它讓咱們將業務邏輯從應用服務(如事務管理)中分離出來,實現了高內聚開發,應用對象只關注業務邏輯,再也不負責其它系統問題(如日誌、事務等)。設計
2. 優勢日誌
a. 使用Spring的IOC容器,將對象之間的依賴關係交給Spring,下降組件之間的耦合性,讓咱們更專一於應用邏輯。對象
b. 能夠提供衆多服務,事務管理,WS等。事務
c. AOP的很好支持,方便麪向切面編程。開發
d. 對主流的框架提供了很好的集成支持,如Hibernate,Struts2,JPA等程序設計
e. Spring DI機制下降了業務對象替換的複雜性。
f. Spring屬於低侵入,代碼污染極低。
g. Spring的高度可開放性,並不強制依賴於Spring,開發者能夠自由選擇Spring部分或所有。