spring 注解的優點缺點


注解與XML配置的區別

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

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

 

因此注解和XML的選擇上可以從兩個角度來看:分散還是集中,源代碼耦合/解耦。

 

注解的缺點:

1、很多朋友比如在使用spring注解時,會發現注解分散到很多類中,不好管理和維護;

2、注解的開啟/關閉必須修改源代碼,因為注解是源代碼綁定的,如果要修改,需要改源碼,有這個問題,所以如果是這種情況,還是使用XML配置方式;比如數據源;

3、注解還一個缺點就是靈活性,比如在之前翻譯的Spring Framework 4.0 M1: WebSocket 支持;在實現復雜的邏輯上,沒有XML來的更加強大;注解就是要么用,要么不用;

4、通用配置還是走XML吧,比如事務配置,比如數據庫連接池等等,即通用的配置集中化,而不是分散化,如很多人使用@Transactional來配置事務,在很多情況下這是一種太分散化的配置;

5、XML方式比注解的可擴展性和復雜性維護上好的多,比如需要哪些組件,不需要哪些;在面對這種情況,注解掃描機制比較遜色,因為規則很難去寫或根本不可能寫出來;

 

注解的好處:

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

2、注解最大的好處就是簡化了XML配置;其實大部分注解一定確定后很少會改變,所以在一些中小項目中使用注解反而提供了開發效率,所以沒必要一頭走到黑;

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

 

注解也好,XML也好,我們還是需要一些開關/替換機制來控制特殊需求,以改變那種要么全部 要么沒有的方案。。

 

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

 

不管使用注解還是XML,做的事情還是那些事情,但注解和XML都不是萬能的,滿足自己的需求且已一種更簡單的方式解決掉問題即可。

 

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

 

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM