注釋配置相對於 xml 配置具有很多的優勢:
它可以充分利用 j**a 的反射機制獲取類結構資訊,這些資訊可以有效減少配置的工作。如使用 jpa 注釋配置 orm 對映時,我們就不需要指定 po 的屬性名、型別等資訊,如果關係程式設計客棧表字段和 po 屬性名、型別都一致,您甚至無需編寫任務屬性對映資訊——因為這些資訊都可以通過 j**a 反射機制獲取。
注釋和 j**a **位於乙個檔案中,而 xml 配置採用獨立的配置檔案,大多數配置資訊在程式開發完成後都不會調整,如果配置資訊和 j**a **放在一起,有助於增強程式的內聚性。而採用獨立的 xml 配置檔案,程式設計師在編寫乙個功能時,往往需要在程式檔案和配置檔案中不停切換,這種思維上的不連貫會降低開發效率。
因此在很多情況下,注釋配置比 xml 配置更受歡迎,注釋配置有進一步流行的趨勢。spring 2.5 的一大增強就是引入了很程式設計客棧多注釋類,現在您已經可以使用注釋配置完成大部分 xml 配置的功能。
注程式設計客棧釋配置和 xml 配置的適用場合
是否有了這些 ioc 注釋,我們就可以完全摒除原來 xml 配置的方式呢?答案是否定的。有以下幾點原因:
注釋配置不一定在先天上優於 xml 配置。如果 bean 的依賴關係是固定的,(如 service 使用了哪幾個 dao 類),這種配置資訊不會在部署時發生調整,那麼注釋配置優於 xml 配置;反之如果這種依賴關係會在部署時發生調整,xml 配置顯然又優於注釋配置,因為注釋是對 j**a 源**的調整,您需要重新改寫源**並重新編譯才可以實施調整。
如果 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的註解配置與xml配置之間的比較
本文位址:
Spring使用註解代替xml配置
component user 相當於public class user service user 和 component效果一樣,用於區分不同層的註解 controller user repository user component user 相當於 scope prototype 預設值為sin...
Spring註解之xml配置中的和
首先從說起 篇 他的作用是式地向 spring 容器註冊 autowiredannotationbeanpostprocessor commonannotationbeanpostprocessor persistenceannotationbeanpostprocessor requiredann...
spring註解和xml配置的優缺點比較
首先說說 xml 目前 web 應用中幾乎都使用 xml 作為配置項,例如我們常用的框架 struts spring hibernate ibatis 等等都採用 xml 作為配置。xml 之所以這麼流行,是因為它的很多優點是其它技術的配置所無法替代的。xml 作為可擴充套件標記語言最大的優勢在於開...