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、修改配置而无需变动现有程序。

Continue Reading »

10-03-03 | 编程开发 | Permalink | No Comments |

java Annotation 基础

  配置文件的好处在于进一步降低耦合,使应用更易于扩展,即使对配置文件进行了修改也不需要对工程进行修改和重新编译。缺点也是显而易见,配置文件读取和解析需要花费一定的时间,配置文件过多时难以管理,IDE 无法对配置的正确性进行校验,给测试增加了难度。基于以上原因,Java 从1.5开始提供了 Annotation (注释,标注),它用来修饰应用程序的元素(类,方法,属性,参数,本地变量,包、元数据),编译器将其与元数据一同存储在 class 文件中,运行期间通过 Java 的反射来处理对其修饰元素的访问。Annotation 仅仅用来修饰元素,而不能影响代码的执行。只有通过其配套的框架或工具才能对其信息进行访问和处理。这一点与 xml 相同,没有 struts api 的 struts.xml 文件对程序不会起来任何作用。

  Q:如何使用 Annotation ?
  A:首先让我们从 Java 定义的 Annotation 开始。@Override 可能是我们最常用到的 Annotation 之一了,Eclipse 中当子类中的某个方法覆写的父类中的方法时,会亮黄灯提示。若用 @Override 修饰该方法,黄灯熄灭。再让我们来看一个例子,当我们使用 new java.util.Date(2010, 2, 25); 来初始化日期类时,Eclipse 仍然会亮黄灯提示,这是因为该方法被 @Deprecated 修饰了,表示不推荐使用。从这两个例子我们能够了解到,Annotation 是在编译期校验的。这一点最大的好处是在编译期间就可对错误进行处理。若使用 xml 的话,只有在运行期才能得到错误信息。
Continue Reading »

10-02-25 | 编程开发 | Permalink | No Comments |