之前的有作者JingQ發布了一些自己學習Spring源碼的一些心得和教程,我今天只談一下我們在面試中的如果面試官問到Spring,你應該怎麽去回答,來獲取面試官的青睐。在我的印象中,Spring框架可以說是Java世界裏面最爲成功的框架了,在企業的實際的應用裏面,大部分的企業架構都是基于Spring框架的,它的成功來自于他的理念而不是技術,最爲核心的理念是IOC和AOP。接下來我們就來講講這個Spring吧!
Spring的曆史
Spirng從2004年第一個版本至今已經有十多年了,Spring的出現是因爲當時Sun公司EJB的失敗,因爲當時的EJB2的時代,那配置文件可是非常的多呀,虧了我沒在那個時代去做開發,去寫代碼,不然我估計自己可能怎麽涼的都不知道。
而在之後的EJB3客服了配置方面的冗余,但是對于JAVAEE開發來說,更爲致命的是對EJB容器的依賴,也就是EJB智能運行在EJB容器中,EJB容器的笨重,讓很多企業感到熟手無策。
正是因爲EJB的沒落,導致了Spring的崛起,在Spring中,它會認爲一切Java的類都是資源,而自願都是BEan,容納這些Bean的Spring所提供的IOC容器,所以Spring是一種基于Bean的編程。
面試問法一:什麽是Spring
回答:Spring是一個J2EE的框架,這個框架提供了對輕量級IOC的良好支持,同時也提供了對AOP技術非常好的封裝,相比于其他的框架,Spring框架的設計更加模塊化,框架內的每個模塊都能完成特定的工作, 而且各個模塊可以獨立的運行,不會相互的前置,因此,在使用Spring框架的時候,我們可以使用整個框架,也可以使用框架中的一部分,例如只使用AOP模塊的日志管理。
回答這個問題的時候,不需要去特別的背誦到底什麽是Spring,我們要說出自己對Spring框架的理解就可以了,很多時候面試官可能是問你的是你自己對框架的理解,而不是全篇背誦。
面試問法二:Spring有哪些模塊
圖解如下,
通過圖中的方法,可以把創建對象的過程委托給TeaFactory來完成,在我們需要使用對象的時候,我們就直接調用Factroy類中的getTea方法即可,具體創建對象邏輯放在了TeaFactory中來實現,我們只需要把Greentea換成BlackTea,那麽系統中所有的AbstractTea1 = new GreenTea()這個方法就會替換成BlackTea了,只需要在一個地方做改動就能完成很複雜的事情了。
雖然說采用工廠模式之後,增強了系統的可擴展性,但是從本質上講,工廠模式只不過是把程序中變動的邏輯全部都放到了工廠類中了,當系統的類比較多的時候, 就會經常的去改動工廠類中的代碼,我們采用IOC實現方法之後,就會有另外一種。
圖解
