註釋配置相對於 XML 配置具備不少的優點: html
它能夠充分利用 Java 的反射機制獲取類結構信息,這些信息能夠有效減小配置的工做。java
如:使用 JPA 註釋配置 ORM 映射時,咱們就不須要指定 PO 的屬性名、類型等信息,若是關係表字段和 PO 屬性名、類型都一致,您甚至無需編寫任務屬性映射信息——由於這些信息均可以經過 Java 反射機制獲取。 程序員
註釋和 Java 代碼位於一個文件中,而 XML 配置採用獨立的配置文件,大多數配置信息在程序開發完成後都不會調整,spring
若是配置信息和 Java 代碼放在一塊兒,有助於加強程序的內聚性。而採用獨立的 XML 配置文件,程序員在編寫一個功能時,每每須要在程序文件和配置文件中不停切換,這種思惟上的不連貫會下降開發效率。 工具
所以在不少狀況下,註釋配置比 XML 配置更受歡迎,註釋配置有進一步流行的趨勢。Spring 2.5 的一大加強就是引入了不少註釋類,如今您已經可使用註釋配置完成大部分 XML 配置的功能。 測試
註釋配置和 XML 配置的適用場合 htm
是否有了這些 IOC 註釋,咱們就能夠徹底摒除原來 XML 配置的方式呢?答案是否認的。有如下幾點緣由: 對象
註釋配置不必定在先天上優於 XML 配置。若是 Bean 的依賴關係是固定的,(如 Service 使用了哪幾個 DAO 類),這種配置信息不會在部署時發生調整,那麼註釋配置優於 XML 配置;反之若是這種依賴關係會在部署時發生調整,XML 配置顯然又優於註釋配置,由於註釋是對 Java 源代碼的調整,您須要從新改寫源代碼並從新編譯才能夠實施調整。 blog
若是 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比較多,直接影響代碼質量,對於代碼的簡潔度有必定的影響
轉自:https://www.cnblogs.com/yq12138/p/7210274.html