先講結論,使用註解@Autowired注入比較好
當時Spring開發的初衷是爲了解決類與類之間的強藕合
new
,所以當時提出了xml配置注入bean的方法,就是讓代碼只關注我需要什麼service,但此service是由哪個實現類提供的我並不關心使用xml的好處就是,實現類更換的時候並不需要去改動代碼,只要去改動xml配置,將注入的bean改成另一個實現類就可以了,如此可以達到類與類之間的松藕合
但是到了Spring3.0之後,他們開始提出了使用@Autowired註解來進行bean的注入
有的人可能會覺得,如果使用@Autowired、@Qualifier來注入,那麼假設我要改注入實現類的話,得去改java代碼中的@Qualifier,那這樣還是得改代碼,那這樣使用Spring注入和使用
new
,又有什麼差別?是不是還是使用xml比較好?事實上,使用註解確實會有這個問題沒錯,不過經過長時間的項目經驗下來,你會發現,我們其實很少會去改注入的實現類的 (天天改服務還要不要命?)
而註解提供的好處卻是不少,像是簡化xml配置的冗長、使用註解比較直觀且容易、並且是類型安全的(compiler可以掃描註解,判斷注入的類型是否正確,但他掃描不了xml文件)
因此就算使用註解@Autowired去改變注入的實現類比xml更困難,但他其他大量的優點足以掩蓋過這個缺點,這也是爲什麼Spring覺得使用註解配置比使用xml配置更好的理由
所以到目前爲止(Spring4.0),雖然Spring官方本身沒有明說拋棄xml配置,不過事實上Spring已經轉往註解配置方向前進了,SpringBoot就是最好的例子
SpringBoot中只有一個properties文件負責配置一些不可避免的設定,像是數據庫連接、mvc模板配置....,除此之外沒有任何一個xml文件來定義bean,全部都是使用註解來配置
註解 vs XML 優缺點比較
註解
優點
簡化配置
使用起來直觀且容易,提升開發效率
類型安全
缺點
改變實現類比xml困難
xml
優點
類與類間的松藕合,容易擴展、更換
對象間的關係一目瞭然
缺點
配置冗長,且還要額外多維護一份配置
類型不安全,compile無法幫忙校驗,運行期纔會發現錯誤
Spring - 註解 vs XML 哪個好?
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.