Annotation和xml各自作爲配置項的優點與缺點。
一、Annotation 的優點
1、保存在 class 文件中,降低維護成本。
2、無需工具支持,無需解析。
3、編譯期即可驗證正確性,查錯變得容易。
4、提升開發效率。
Annotation 缺點:
1、若要對配置項進行修改,不得不修改 Java 文件,重新編譯打包應用。
2、配置項編碼在 Java 文件中,可擴展性差。
二、XML
目前web應用中幾乎都使用xml作爲配置項,例如我們常用的框架Struts、Spring、Hibernate、IBatis等等都採用xml作爲配置。
xml之所以這麼流行,是因爲它的很多優點是其它技術的配置所無法替代的。
1、xml作爲可擴展標記語言最大的優勢在於開發者能夠爲軟件量身定製適用的標記,使代碼更加通俗易懂。
2、利用xml配置能使軟件更具擴展性。例如Spring將class間的依賴配置在xml中,最大限度地提升應用的可擴展性。
3、具有成熟的驗證機制確保程序正確性。利用Schema或DTD可以對xml的正確性進行驗證,避免了非法的配置導致應用程序出錯。
4、修改配置而無需變動現有程序。
雖然有如此多的好處,但畢竟沒有什麼萬能的東西,xml也有自身的缺點。
1、需要解析工具或類庫的支持。
2、解析xml勢必會影響應用程序性能,佔用系統資源。
3、配置文件過多導致管理變得困難。
4、編譯期無法對其配置項的正確性進行驗證,或要查錯只能在運行期。
5、IDE無法驗證配置項的正確性無能爲力。
6、查錯變得困難。往往配置的一個手誤導致莫名其妙的錯誤。
7、開發人員不得不同時維護代碼和配置文件,開發效率變得低下。
8、配置項與代碼間存在潛規則。改變了任何一方都有可能影響另外一方。