1、注解定义

注解就是源代码的元数据。

比如,

@Override

public String toString() {

return "This is String Representation of current object.";

}

上面的代码中,我重写了toString()方法并使用了@Override注解。但是,即使我不使用@Override注解标记代码,程序也能够正常执行。那么,该注解表示什么?这么写有什么好处吗?事实上,@Override告诉编译器这个方法是一个重写方法(描述方法的元数据),如果父类中不存在该方法,编译器便会报错,提示该方法没有重写父类中的方法。如果我不小心拼写错误,例如将toString()写成了toStrring(){double r},而且我也没有使用@Override注解,那程序依然能编译运行。但运行结果会和我期望的大不相同。现在我们了解了什么是注解,并且使用注解有助于阅读程序。

2、为什么需要注解

假如你想为应用设置很多的常量或参数,这种情况下,XML是一个很好的选择,因为它不会同特定的代码相连。如果你想把某个方法声明为服务,那么使用Annotation会更好一些,因为这种情况下需要注解和方法紧密耦合起来,开发人员也必须认识到这点。

另一个很重要的因素是Annotation定义了一种标准的描述元数据的方式。在这之前,开发人员通常使用他们自己的方式定义元数据。例如,使用标记interfaces,注释,transient关键字等等。每个程序员按照自己的方式定义元数据,而不像Annotation这种标准的方式

跟代码关系紧密需要紧耦合的情况用注解,其它为松耦合配置用xml。

3、四种元注解

J2SE5.0版本在 java.lang.annotation提供了四种元注解,专门注解其他的注解:

@Documented –注解是否将包含在JavaDoc中

@Retention –什么时候使用该注解

@Target? –注解用于什么地方

@Inherited – 是否允许子类继承该注解

4、Annotation 的优缺点

 Annotation 的优点

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

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

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

  4、提升开发效率。

 Annotation 缺点:

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

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