* 注解
* 概述 :从Java核心内容到JavaEE,一路都可以使用注解方式完成.* 作用:主要就是用来替代xml的配置文件.
* 存在的位置:在对应的Java类中.* 使用的范围:用于修饰包,类,构造器,方法,成员变量,参数和局部变量的声明.
* 存储形式:key\value形式.
* 注意:不影响原本的代码执行.
* 注解:
* 优点:
* 直观,简单.
* 配置方式容易.
* 缺点:
* 配置信息相对过于零散.
* 修改过于麻烦(重新编译)
* XML:
* 优点:
* 与Java类逻辑的关系低耦合.
* 复用性:可重复使用
* 修改很简单(不用编译)
* 缺点:
* 编写过于复杂.
* 解析操作过于复杂.
* Java中提供三个基本注解:
@Override:
限定重写父类方法
用处:当一个类继承于另一个类,并重写其提供的方法时.
@Deprecated:
标示已过时
作用:保证软件或系统版本更新,对版本的兼容性(新版本只能增加内容,不能修改及删除).
@SuppressWarnings:
抑制编译器警告
范围:作用在类、方法、成员变量等.
* 自定义注解:
* 使用关键字 @interface.* 定义属性:
* 语法:类型 属性名称();
* 使用属性时:
* @注解名称(属性名=属性值,属性名=属性值,...)
* 一旦自定义注解时,定义属性:一定是必要属性.
* 支持的类型:基本类型、String、Enum、Class及上述类型的一维数组类型.
* 注意:* 如果自定义注解,只定义value属性(没有任何其他属性)
String value();
* 使用该注解时,可以省略"value="(可以直接指定属性值,而不定义属性名)
@MyAnno("")
规定一个自定义注解,设定其可以使用的范围:
@Target注解:
* 作用: 用于修饰自定义注解.* 用于指定该自定义注解允许修饰Java类的哪个部分(类、成员变量、方法等).
* 该注解包含ElementType类型的value属性.
@Retention注解:
* 作用: 用于修饰自定义注解.* 指定该自定义注解的生命周期.(生命周期 - SOURCE、CLASS、RUNTIME)
通过反射读取注解:
* 前提:自定义注解只能是RUNTIME.