close

lines-of-code.jpg

在Spring 2.5之後,支援用Annotation的方式來宣告像是Bean, Controller, Service ...等Component

甚至,連web.xml跟Spring本身的核心配置檔(xxx-servlet.xml)都可以用Annotation的方式來取代
而在我最近survey的幾篇有關SPring MVC的文章中,許多都是採Annotation的方式做配置,甚至有些也提到Annotation的方式是趨勢

這邊稍微記錄一下我有查到有關在Spring MVC中,其他人分別選擇用Annotation或者是用XML的理由:
方便日後在選擇時可以有個參考:

1. 為何選擇用Annotation?
(1) XML並不是型別安全的(Type-Safe),因此若採XML配置,你很難在啟動Spring專案前就發現內容上的錯誤
    而若使用annotation,當設定內容有誤時在編譯時就會被發現
(2) 由於XML需要詳盡的記錄每項屬性的設定,因此當Web應用程式越來越龐大,相對應的XML檔案內容就會越來越肥大
(3) 在XML中很難搜尋特定的內容,只能依賴Ctrl+F等文件搜尋的方式

2. 為何選擇用XML?
(1) 統一寫在XML中可以直接看到整個配置的全貌,而不會分散各個地方
(2) 在Spring中可藉由  tag來將XML拆開成數個檔案,以避免檔案過大的問題
(3) 有些Annotation隱藏太多實際運作的複雜細節,像是 @AutoWired ,然後在XML中我們可以做更細部的一些設定

其實各有其考量的地方,只是以我目前的立場來說我也是傾向於用Annotation
畢竟跟著趨勢走比較不會跟不上腳步,另外有關在XML中很難發現設定錯誤跟尋找內容這點我也蠻認同的
如果往後有再看到相關的文章我會再補充上來~!

參考資料:
1. https://blog.codecentric.de/en/2012/07/spring-dependency-injection-styles-why-i-love-java-based-configuration/
2. http://stackoverflow.com/questions/29162278/benefits-of-javaconfig-over-xml-configurations-in-spring
3. https://dzone.com/articles/consider-replacing-spring-xml

arrow
arrow
    文章標籤
    Spring MVC Annotation XML
    全站熱搜

    allen0818 發表在 痞客邦 留言(0) 人氣()