spring 註解的優勢缺點

註解與XML配置的區別spring

註解:是一種分散式的元數據,與源代碼耦合。數據庫

xml :是一種集中式的元數據,與源代碼解耦。設計模式

 

所以註解和XML的選擇上能夠從兩個角度來看:分散仍是集中,源代碼耦合/解耦。安全

 

註解的缺點:mvc

一、不少朋友好比在使用spring註解時,會發現註解分散到不少類中,很差管理和維護;翻譯

二、註解的開啓/關閉必須修改源代碼,由於註解是源代碼綁定的,若是要修改,須要改源碼,有這個問題,因此若是是這種狀況,仍是使用XML配置方式;好比數據源;設計

三、註解還一個缺點就是靈活性,好比在以前翻譯的Spring Framework 4.0 M1: WebSocket 支持;在實現複雜的邏輯上,沒有XML來的更增強大;註解就是要麼用,要麼不用;xml

四、通用配置仍是走XML吧,好比事務配置,好比數據庫鏈接池等等,即通用的配置集中化,而不是分散化,如不少人使用@Transactional來配置事務,在不少狀況下這是一種太分散化的配置;blog

五、XML方式比註解的可擴展性和複雜性維護上好的多,好比須要哪些組件,不須要哪些;在面對這種狀況,註解掃描機制比較遜色,由於規則很難去寫或根本不可能寫出來;事務

 

註解的好處:

一、XML配置起來有時候冗長,此時註解多是更好的選擇,如jpa的實體映射;註解在處理一些不變的元數據時有時候比XML方便的多,好比spring 聲明式事務管理,若是用xml寫的代碼會多的多;

二、註解最大的好處就是簡化了XML配置;其實大部分註解必定肯定後不多會改變,因此在一些中小項目中使用註解反而提供了開發效率,因此不必一頭走到黑;

三、註解相對於XML的另外一個好處是類型安全的,XML只能在運行期才能發現問題。

 

註解也好,XML也好,咱們仍是須要一些開關/替換機制來控制特殊需求,以改變那種要麼所有 要麼沒有的方案。。

 

還一種呼聲就是約定大於配置,這種方案可能在某些場景下是最優的,可是遇到一些複雜的狀況可能並不能解決問題,因此此時註解也是一個不錯的方案。尤爲在使用springmvc時,好處是能體會的出的。

 

無論使用註解仍是XML,作的事情仍是那些事情,但註解和XML都不是萬能的,知足本身的需求且已一種更簡單的方式解決掉問題便可。

 

就像探討一下技術問題,不少人都帶有很強的我的喜愛來評判一個東西的好壞,這種探討沒有任何意義,咱們最終的目的是解決方案,因此咱們應該探討的是能不能解決問題,能不能以更容易理解的方式解決問題,能不能更簡單的解決問題。

 

不論是約定大於配置、註解仍是XML配置也好,沒有哪一個是最優的,在合適的場景選擇合適的解決方案這纔是重要的。就像設計模式同樣:是對特定環境中重複出現的特定問題的一個通過前人驗證了的解決方案。

相關文章
相關標籤/搜索