Spring系列-Spring介紹

老規矩

優點:模塊化,更新快,開源,擴展性強,生態圈豐富

缺點:排外,太過靈活,繼承性低,培訓成本高


三大關鍵

Spring是什麼:2014年之前我會說Spring是一個容器框架。現在Spring已經變成一個生態圈,它已經變成一個大家庭了。我也正在尋找Spring的新定義。

Spring能幹什麼:雖然現在Spring開發多了很多組件,但是我還是說。Spring是做web開發的中間件。

Spring怎麼用:這個就不寫這裏了,後面開新的博客去整理。


歷程:

2012年就在說ssh三大框架。那個時候struts2剛出,Spring 也沒說要做mvc,持久化框架更是隻有hibernate。ssh三大框架就這樣叫出來了,Spring在這中間起什麼作用呢?沒錯,粘合劑,我要用mvc,和對象持久化。那麼把Spring加入就是非常好的選擇,就因爲集成方便。然後那個時候什麼控制反轉,依賴注入是很有好處。但是,仍然在爭吵中度過的2012年,什麼都是xml配置,什麼都要配置非常多的人牴觸,而且那個時候Spring是沒辦法熱插拔的。所以Spring在那個時候根本沒啥地位。

然後什麼時候發生變化了呢,Spring mvc在2012年底突然異軍突起,遍地開花,結合java的註解開發,直接風靡全球。直接亮瞎我的雙眼,然後Spring的AOP實現的日誌攔截。已經在稍微晚一點的權限主鍵。那個時候的Spring感覺突然地位變重要了,Spring3.0就是這個轉變的標識。

2013年之後在看Spring,那些爭吵的聲音都慢慢平息下去了,反而Spring慢慢開始壯大,基本上每年一個樣,變我都慢慢的不認識了。加入大數據啊,然後分佈式的呀,太多太多。其實在2014年的時候,Spring還並沒有到春天,哪個時候Spring3只是在慢慢發芽,我們公司就是用的Spring3。

Spring4貌似是在2014年的8月份出的,具體時間不太記得。然後Spring就慢慢變大了,加了各種控件的支持,但是都沒有了解過了。

現在Spring已經不再是當年的粘合劑,他的作用已經無法替代。現在說Java web開發基本上都是Spring,可以沒有Struts可以沒有hibernate。基本上沒有不用Spring的。

在移動開發上也是很多使用Spring的。但是有個面試官問我,如果不用Spring怎麼開發。我覺得這個問題值得認真思考。


優缺點解釋:

其實本來不太像解釋,本來我是個Spring粉,優點說這麼少已經很難爲我了。說Spring好的網上一抓一大把,我就不說了。

缺點其實很明顯,我就解釋一下缺點。

排外:Spring說是生態圈,但是呢,我從沒見過Spring的什麼插件。相對說JQuery就好很多,很多插件可以用。Spring可以有很多插件,但是一般來說都是官方的,官方對於這一點做的並不是很好。只是在打造自己的生態圈,說起來就是做自己的帝國而已。你說Spring本來就是開源的,直接去官方提供插件就好?呵呵!

太過靈活:最開始SSH流行,我們技術總監分析了很多,其中有一點,就是框架對代碼的規範性。大夥寫出來的代碼其實都差不多,相當於已經約定了怎麼去做web開發。

而Spring在後面的版本中,對代碼的規範性做的並不是很好,因爲太靈活,所以你可以看到各種各樣的代碼。這樣對於小公司而且又會多很多成本。

繼承性低:誰能告訴我怎麼把Spring2升級到Spring3呢?直接升級?抱歉Spring3需要的hibernate版本要更高哦!更不用說Spring3升級到Spring4了。這個其實也是沒辦法避免的。其實我試過了,如果只是用Spring,那麼它是完全向下兼容的,我從Spring2.5.6直接一路升級到了Spring4.3.1,中間非常順。如果你使用了Spring集成其他的框架,那麼抱歉,你要改的東西還真不少。所以,這裏的繼承性低不是Spring引起的,其實和Spring關係並不大,更多的是一些集成性問題。

培訓成本高:如果說我上面都是強詞奪理的話,這個理由估計要被無數人噴。我是真想說,真的培訓成本很高,因爲它越來越大了。如果只是用Spring Framework那還好,如果使用了其他的,幾乎培訓成本刷刷往上漲。他的生態圈更新起來太快,你能完全保證使用一個版本就不更新了嗎?每次升級架構師都需要花費很多時間去讀他的更新日誌,還需要很多測試。


以上只是我個人理解,我不是大神,能力有限,不喜隨便噴。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章