Spring框架侵入性

摘自《Spring框架技術》
Spring框架是一種非侵入式的輕量級框架
1.非侵入式的技術體現
允許在應用系統中自由選擇和組裝Spring框架的各個功能模塊,並且不強制要求應用系統的類必須從Spring框架的系統API的某個類來繼承或者實現某個接口。
2.如何實現非侵入式的設計目標的
 1)應用反射機制,通過動態調用的方式來提供各方面的功能,建立核心組間BeanFactory
 2)配合使用Spring框架中的BeanWrapper和BeanFactory組件類最終達到對象的實例創建和屬性注入
 3)優點:允許所開發出來的應用系統能夠在不用的環境中自由移植,不需要修改應用系統中的核心功能實現的代碼
 
下爲轉載:
簡單說一下我的理解吧。假設大家都想要把用戶代碼塞到一個框架裏。侵入式的做法就是要求用戶代碼“知道”框架的代碼,表現爲用戶代碼需要繼承框架提供的類。非侵入式則不需要用戶代碼引入框架代碼的信息,從類的編寫者角度來看,察覺不到框架的存在。
例如:
使用struts的時候,我需要繼承一些struts的類,這時struts侵入到了我的代碼裏。
使用spring,編寫一些業務類的時候不需要繼承spring特定的類,通過配置完成依賴注入後就可以使用,此時,spring就沒有侵入到我業務類的代碼裏。

侵入式讓用戶代碼產生對框架的依賴,這些代碼不能在框架外使用,不利於代碼的複用。但侵入式可以使用戶跟框架更好的結合,更容易更充分的利用框架提供的功能。
非侵入式的代碼則沒有過多的依賴,可以很方便的遷移到其他地方。但是與用戶代碼互動的方式可能就比較複雜。

這兩種方式都有各自的優缺點吧,主要看實際開發時怎麼權衡了。
發佈了126 篇原創文章 · 獲贊 46 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章