Spring的註解配置與XML配置之間的比較

NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

註釋配置相對於 XML 配置具有很多的優勢:
它可以充分利用 Java 的反射機制獲取類結構資訊,這些資訊可以有效減少配置的工作。如使用 JPA 註釋配置 ORM 對映時,我們就不需要指定 PO 的屬性名、型別等資訊,如果關係表欄位和 PO 屬性名、型別都一致,您甚至無需編寫任務屬性對映資訊——因為這些資訊都可以通過 Java 反射機制獲取。

註釋和 Java 程式碼位於一個檔案中,而 XML 配置採用獨立的配置檔案,大多數配置資訊在程式開發完成後都不會調整,如果配置資訊和 Java 程式碼放在一起,有助於增強程式的內聚性。而採用獨立的 XML 配置檔案,程式設計師在編寫一個功能時,往往需要在程式檔案和配置檔案中不停切換,這種思維上的不連貫會降低開發效率。

因此在很多情況下,註釋配置比 XML 配置更受歡迎,註釋配置有進一步流行的趨勢。Spring 2.5 的一大增強就是引入了很多註釋類,現在您已經可以使用註釋配置完成大部分 XML 配置的功能。

註釋配置和 XML 配置的適用場合
是否有了這些 IOC 註釋,我們就可以完全摒除原來 XML 配置的方式呢?答案是否定的。有以下幾點原因:
註釋配置不一定在先天上優於 XML 配置。如果 Bean 的依賴關係是固定的,(如 Service 使用了哪幾個 DAO 類),這種配置資訊不會在部署時發生調整,那麼註釋配置優於 XML 配置;反之如果這種依賴關係會在部署時發生調整,XML 配置顯然又優於註釋配置,因為註釋是對 Java 原始碼的調整,您需要重新改寫原始碼並重新編譯才可以實施調整。

如果 Bean 不是自己編寫的類(如 JdbcTemplate、SessionFactoryBean 等),註釋配置將無法實施,此時 XML 配置是唯一可用的方式。

註釋配置往往是類級別的,而 XML 配置則可以表現得更加靈活。比如相比於 @Transaction 事務註釋,使用 aop/tx 名稱空間的事務配置更加靈活和簡單。

所以在實現應用中,我們往往需要同時使用註釋配置和 XML 配置,對於類級別且不會發生變動的配置可以優先考慮註釋配置;而對於那些第三方類以及容易發生調整的配置則應優先考慮使用 XML 配置。Spring 會在具體實施 Bean 建立和 Bean 注入之前將這兩種配置方式的元資訊融合在一起。

小結
Spring 在 2.1 以後對註釋配置提供了強力的支援,註釋配置功能成為 Spring 2.5 的最大的亮點之一。合理地使用 Spring 2.5 的註釋配置,可以有效減少配置的工作量,提高程式的內聚性。但是這並不意味著傳統 XML 配置將走向消亡,在第三方類 Bean 的配置,以及那些諸如資料來源、快取池、持久層操作模板類、事務管理等內容的配置上,XML 配置依然擁有不可替代的地位。

您可能感興趣的文章:

詳解Spring中的JavaConfig註解spring基礎系列之JavaConfig配置詳解java實現Spring在XML配置java類的方法詳解Spring Aop例項之xml配置詳解Spring中使用xml配置bean的細節Spring實戰之XML與JavaConfig的混合配置詳解

相關文章

程式語言 最新文章