主要是些負(fù)面的體會。
一。Spring的xml配置很不好。xml濫用程度已經(jīng)泛濫成災(zāi)了。要知道程序員最習(xí)慣,最歡迎的還是看代碼。當(dāng)要看一個業(yè)務(wù)邏輯時發(fā)現(xiàn)竟然先要去看它的父類,然后看爺爺類,然后再看太爺爺類,最后發(fā)現(xiàn)還需要找Spring配置去找另外一個類,而這個類ref了另外一個類時,肯定哐當(dāng)暈倒。無論是初學(xué)語言,還是對技術(shù)深入了解的高手,或者還是因?yàn)轫?xiàng)目緊急從別的地方抽掉過來的其他成員。簡單的代碼和配置都是合適的(像我這樣用了好幾年的java的人已經(jīng)有點(diǎn)不愛看xml配置)。
二。Spring的配置方式不支持開發(fā)模式。每次修改Spring配置,總是需要重啟動。一些大項(xiàng)目啟動是非常耗時的。相反一些別的小的第三方配置開發(fā)包可以支持開發(fā)模式。另外,我覺得Sping也不太可能支持開發(fā)模式,這在下面一點(diǎn)會說到
三。直覺上Spring管的太多。對于很多框架或者第三方lib來說,往往專著于完成系統(tǒng)的某一方面。如Hibernate專著于O/R Mapping,EJB專著于分布,事務(wù),規(guī)則引擎專著于解釋規(guī)則,執(zhí)行運(yùn)算等。Spring做的太多使其有啥都做不好的嫌疑,當(dāng)然這還不是最主要的負(fù)面因素,而是他干擾了業(yè)務(wù)系統(tǒng)。他對對象進(jìn)行管理有可能會讓某些用戶用Spring管理業(yè)務(wù)對象。這有可能帶來負(fù)面結(jié)果的。如一些情況:Struts的MVC被Spring接管,業(yè)務(wù)邏輯又被Spring接管。一個新手很難看懂代碼。了解代碼的時候總會遇到“黑洞”。又如上面所說的開發(fā)模式,因?yàn)闃I(yè)務(wù)對象的互相依賴,"重新啟動業(yè)務(wù)對象"是很復(fù)雜的一件事情,Spring也不可能做到這一點(diǎn)。除非你的業(yè)務(wù)對象屈服于Spring的架構(gòu),這又和使用Spring初衷違背了。再如,業(yè)務(wù)對象的復(fù)雜性,核心性決定了Spring難以管理好它,也沒有必要多此一舉.
四。適配器成災(zāi)。Spring為了管理好第三方包,只好做些適配器。以方便管理。當(dāng)然,有些第三方包很簡單,不需要做,比如我看到j(luò)avaresearch.org剛有的一篇文章是在Spring中使用定時器。但是某些復(fù)雜的第三方包或者框架就有問題了,得寫適配器。如接管某web mvc框架。又如剛才所說的定時器lib,本生功能齊備的定時器lib就有自己的配置,你要去Spring去管理它。只能寫個適配器,在適配器中使用定時器lib提供的配置文件。
新聞熱點(diǎn)
疑難解答
圖片精選