首先spring 是乙個框架,使用spring並不代表**質量的提高,就像蓋房子選擇用上海的地皮還是北京的地皮一樣,房子質量與土地所在的城市無關,與房子的具體設計方案和選料有關。
使用spring 等框架可以簡化很多基礎性的工作,配置好後可以方便構建業務應用。
框架使用多了會有侷限的感覺,像小鳥**在籠子裡,無法飛出去,雖然在籠子裡面吃喝不愁。目前程式設計的門檻越來越低,諸多開源框架廣泛傳播,幾乎沒有什麼技術門檻,會配置就會程式設計,而乙個好的dba對軟體效能會有很大提高,軟體的核心邏輯最終會轉移到對資料庫的操作上,而且對目前從事的工作來講,感覺技術的瓶頸越來越多的侷限在對資料庫的操作上,下一步要認真提高下了。
spring的優勢不言而喻:
1. 提供了一種管理物件的方法,可以把中間層物件有效地組織起來。乙個完美的框架「黏合劑」。
2. 採用了分層結構,可以增量引入到專案中。
3. 有利於面向介面程式設計習慣的養成。
4. 目的之一是為了寫出易於測試的**。
5. 非侵入性,應用程式對spring api的依賴可以減至最小限度。
6. 一致的資料訪問介面。
6. 乙個輕量級的架構解決方案。
對spring的理解
spring致力於使用pojos來構建應用程式。由框架提**用程式的基礎設施,將只含有業務邏輯的pojos作為元件來管理。從而在應用程式中形成兩條相對獨立發展的平行線,並且在各自的抽象層面上延長了各自的生命週期。
spring的工作基礎是ioc。ioc將建立物件的職責從應用程式**剝離到了框架中,通常2中注入方式:setter 和 ctor引數。
每個bean定義被當作乙個pojo(通過類名和j**abean的初始屬性或構造方法引數兩種方式定義的bean)。
spring的核心在org.springframework.beans,更高抽象層面是beanfactory. beanfactory是乙個非常輕量級的容器。
關於可維護性的思考
spring之類的技術確實帶來了應用系統的可維護性的提高嗎?
ioc, aop之類的技術,本質上都是將原本位於應用程式**中"硬編碼"邏輯,剝離出來放到了配置檔案中(或者其他形式)。主流聲音都是認為提高了應用程式的可維護性。
但如果從以下方面觀察,結合專案實際經驗,個人感覺這些技術的應用大大降低了應用程式的可維護性,尤其是面對乙個陌生的系統,或者專案人員變動頻繁的時候。
1. 中斷了應用程式的邏輯,使**變得不完整,不直觀。此時單從source無法完全把握應用的所有行為。
2. 將原本應該**化的邏輯配置化,增加了出錯的機會以及額外的負擔。
3. 時光倒退,失去了ide的支援。在目前ide功能日益強大的時代,以往**重構等讓人頭痛的舉動越來越容易。而且ide還提供了諸多強大的輔助功能,使得程式設計的門檻降低很多。通常來說,維護**要比維護配置檔案,或者配置檔案+**的混合體要容易的多。
4. 除錯階段不直觀,後期的bug對應階段,不容易判斷問題所在。
Spring的優點和缺點
spring的優勢不言而喻 1.提供了一種管理物件的方法,可以把中間層物件有效地組織起來。乙個完美的框架 黏合劑 2.採用了分層結構,可以增量引入到專案中。3.有利於面向介面程式設計習慣的養成。4.目的之一是為了寫出易於測試的 5.非侵入性,應用程式對spring api的依賴可以減至最小限度。6....
requirejs的優點及缺點
最近在學習requirejs,學了一段時間,卻發現自己沒有搞懂乙個問題,為什麼需要requirejs,為什麼需要模組化載入呢?今天看到csdn上的一篇部落格,解決了我的種種疑問 requirejs採用lazyload的方式 後載入 載入js指令碼,這樣的載入方式大大的提高了效能 requirejs採...
Spring框架的優缺點
參考 spring的優點 1.提供了一種管理物件的方法,可以把中間層物件有效地組織起來。乙個完美的框架 黏合劑 2.採用了分層結構,可以增量引入到專案中。3.有利於面向介面程式設計習慣的養成。4.目的之一是為了寫出易於測試的 5.非侵入性,應用程式對spring api的依賴可以減至最小限度。6.一...