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 , 還是推薦跟著趨勢走吧 : ))
Annotation : (Dependency injection)
Example : 如果一個類別被註記(annotation)了一個logger service , 代表該類別有 Dependency 在 Service的類別
哪裡可以使用Annotation?
A:
該類別之建構元前面(construction injection)
區域前面 (field injection)
方法前面 (method injection)