面試時,怎麼回答「你對Spring的理解」?


首先Spring是一個大的概念,Spring從最開始的一個Library到現在一個系列,其中最主要的包括Spring Framework, Spring Data, Spring Security, Spring Batch等等,以及快速框架Spring Boot,其中最重要的項目是Spring Framework,這個項目包括了IoC, AOP, MVC以及Testing。

第一個需要明白的是Spring的核心思想是什麼?Spring整個系列的最最核心的概念當屬IoC, AOP,什麼是IoC和AOP就不展開了,簡而言之,將對象創建過程的職責賦予容器,通過容器管理對象的生老病死, 將對象創建過程從編譯時延期到運行時,即通過配置進行載入,這樣一來就解決了不用編譯後期選擇具體實現,其實就是面向對象的核心理念,針對介面編程。IoC開始就是個factory加上依賴管理罷了,這樣一來,一個系統的創建過程就從原先的new改為配置組裝,內部通過注入解決了依賴關係,只要滿足介面協議即插即用。通過IoC, AOP事實上形成了一個套路,通過這個套路完成了系統的整合。

所以Spring並沒有說自己寫一個ORM,而是用統一的套路完成了多個ORM的集成,這也是Spring越做越大的基礎,慢慢就形成了Spring Way,其實這個才是Spring最有價值的地方。

第二當然就是一些實踐,其實主流問的大概也就幾個方向,用的最多的應該就是Spring MVC, Spring Data, Spring Security和Spring Boot這幾塊吧,因為畢竟這是實踐性內容,很多時候都是show me the code,之前學習過程寫過一個sample,基本全是標準Spring Way,你可以拿去參考一下,GitHub - nonocast/todolist: A simple todolist system implemented with Spring"s backend and TypeScript/React"s frontend. Enjoy it.

  • Spring Boot
  • Spring MVC
  • Spring Security
  • Gradle
  • Freemarker
  • WebJars
  • Spring Data JPA
  • Mysql
  • Wechat
  • React
  • TypeScript
  • webpack
  • Redis

May it helps.

領取Java架構進階資料,關注私信發送暗號555,


spring本身是一個博大精深的框架。

首先spring的核心aop、ioc肯定是要說的,最好能說明aop和ioc的原理,使用了哪些設計模式。

其次,spring的其他模塊知道多少說多少,如:springboot、spring cloud、spring batch、spring schudler、rmi、spring workflow、spring integration、spring security等,自己用過的熟悉的可以重點談一下。

最後比如spring可以方便的與很多其他第三方框架的集成,舉幾個用過的例子:如與mybatis、redis、jms等。

從這三個角度去回答相信應該差不多。

希望我的回答能幫助到你!

關注是為了再一次的交流,戳一戳右上角的關注吧!


spring最重要的兩個就是aop和ioc容器,在事物的管理中應用aop進行管理,配置或者註解兩種,ioc主要是將控制權交給容器,不需要自己創建對象,就是不需要你new,讓我們可以更加的關注業務層面


推薦閱讀:

Python經典面試題21道
產品經理面試題(45T)
BAT機器學習面試1000題(461~465題)
redis面試問題(二)

TAG:教育 | 面試 | Java | 編程語言 |