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


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

注釋配置相對於 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 注入之前將這兩種配置方式的元信息融合在一起。 

 

 

XML配置的優缺點: 

優點有: 

1. XML配置方式進一步降低了耦合,使得應用更加容易擴展,即使對配置文件進一步修改也不需要工程進行修改和重新編譯。 

2. 在處理大的業務量的時候,用XML配置應該更加好一些。因為XML更加清晰的表明了各個對象之間的關系,各個業務類之間的調用。同時spring的相關配置也能一目了然。 

當然,有人會說,用XML配置,在大的業務量時候會使得XML文件過大,不容易查看。這一點我們完全可以利用業務分解書寫多個XML配置文件就可以了。 

缺點有: 

配置文件讀取和解析需要花費一定的時間,配置文件過多的時候難以管理,無法對配置的正確性進行校驗,增加了測試難度。 

 

annotation配置的優缺點: 

優點有: 

1. 在class文件中,可以降低維護成本,annotation的配置機制很明顯簡單 

2. 不需要第三方的解析工具,利用java反射技術就可以完成任務 

3. 編輯期可以驗證正確性,差錯變得容易 

4. 提高開發效率 

 

缺點有: 

1. 如果需要對於annotation進行修改,那么要重新編譯整個工程 

2. 業務類之間的關系不如XML配置那樣容易把握。 

3. 如果在程序中annotation比較多,直接影響代碼質量,對於代碼的簡潔度有一定的影響


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM