xml和Annotation作为配置项的优缺点

2010-03-07 16:37:50  来源:mxjava.com 

网页制作Webjx文章简介:xml 和 Java Annotation 的优缺点对比.

Java Annotation 基础》中我们简单地介绍了 Java Annotation 的作用以及 Java 标准的 Annotation 。今天我们来了解一下 xml 和 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 都有各自的优缺点。通过以上对比,细心的读者可能已经发现它们的优缺点恰恰是互补的。xml 的强项是 Annotation 所不具备的,而 Annotation 的优势也是 xml 所欠缺的。这也正是时下流行的 xml + Annotation 配置的原因所在。在下一篇日志中,我们将使用 xml 和 Annotation 以及 xml + Annotation 各自完成简单的对象注射功能,使读者更加深入地了解 xml 和 Annotation 的作用。

更多

推荐文章