面試時,怎麼回答「你對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
- 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面試問題(二)