xml 和 Java Annotation 的优缺点对比

首先说说 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、配置项与代码间存在潜规则。改变了任何一方都有可能影响另外一方。

    让我们来看看 Annotation 的优点。

    1、保存在 class 文件中,降低维护成本。

    2、无需工具支持,无需解析。

    3、编译期即可验证正确性,查错变得容易。

    4、提升开发效率。

    同样 Annotation 也不是万能的,它也有很多缺点。

    1、若要对配置项进行修改,不得不修改 Java 文件,重新编译打包应用。

    2、配置项编码在 Java 文件中,可扩展性差。



你可能感兴趣的:(xml 和 Java Annotation 的优缺点对比)