初学注解笔记
2016-02-17 19:54
246 查看
一、注解
1、注解的作用:替代配置文件
2、JDK中提供的三个基本的注解
@Override:说明是否覆盖了父类的方法。
@Deprecated:说明过时了。
@SuppressWarnings:抑制警告
@SuppressWarnings("抑制的警告的具体类型"):
unused:变量未使用
deprecation:使用了不赞成使用的类或方法时的警告
unchecked:执行了未检查的转换时的警告。比如没有使用泛型
falthrough:当switch程序块直接通往下一种情况而没有break时的警告
path:在类路径、源文件路径等中有不存在的路径时的警告。
serial:当在可序列化雷尚缺少serialVersionUID定义时的警告
finally:任何finally子句不能正常完成时的警告。
all:关于以上所有情况的警告。
3、自定义注解的语法:
注解本身:public @interface MyAnnotation{}
使用关键字@interface定义一个类而已。这个类就是注解。
注解中的属性:
基本形式:类型 属性名称();
比如:String name();
使用:@MyAnnotationDemo1(name="hello")
特别注意:注解的属性的类型只能是:基本类型、String、Class、枚举、注解类型及以上类型的一维数组。
注解属性的默认值:
类型 属性名称() default 默认值;
注解中的特殊属性:
类型 value(); 使用时,如果只给value设置值,可以这样用:@MyAnnotationDemo1(value="hello")或者@MyAnnotationDemo1("hello")
使用时,如果只给value设置值,还要给其他属性设置值,可以这样用:
@MyAnnotationDemo1(value="hello",name="aaa")
类型[] value();
使用方式如同value。
使用方式:四种都ok
// @MyAnnotationDemo1(value={"a","b"})
// @MyAnnotationDemo1({"a","b"})
// @MyAnnotationDemo1({"a"})
@MyAnnotationDemo1("a")
5、元注解:
定义:服务于注解的注解就是元注解。
***@Retention:注解的保留范围
RetentionPolicy.SOURCE:注解存在于源文件中
RetentionPolicy.CLASS:注解存在于源字节码文件中
RetentionPolicy.RUNTIME:注解存在于运行时
***@Target:注解出现的位置
@Documented: 用于指定被该元 Annotation 修饰的 Annotation 类将被 javadoc 工具提取成文档.
@Inherited: 被它修饰的 Annotation 将具有继承性.如果某个类使用了被 @Inherited 修饰的 Annotation, 则其子类将自动具有该注解
二、Servlet3.0的新规范
1、要求:
jdk6.0+
Tomcat7.0+
2、利用注解替代了web.xml配置文件
@WebServlet:配置Servlet的
@WebInitParam:配置Servlet、Filter的初始化参数
@WebFilter:配置过滤器
@WebListener:注册监听器
@MultipartConfig//证明客户端提交的表单数据是由多部分组成的
1、注解的作用:替代配置文件
2、JDK中提供的三个基本的注解
@Override:说明是否覆盖了父类的方法。
@Deprecated:说明过时了。
@SuppressWarnings:抑制警告
@SuppressWarnings("抑制的警告的具体类型"):
unused:变量未使用
deprecation:使用了不赞成使用的类或方法时的警告
unchecked:执行了未检查的转换时的警告。比如没有使用泛型
falthrough:当switch程序块直接通往下一种情况而没有break时的警告
path:在类路径、源文件路径等中有不存在的路径时的警告。
serial:当在可序列化雷尚缺少serialVersionUID定义时的警告
finally:任何finally子句不能正常完成时的警告。
all:关于以上所有情况的警告。
3、自定义注解的语法:
注解本身:public @interface MyAnnotation{}
使用关键字@interface定义一个类而已。这个类就是注解。
注解中的属性:
基本形式:类型 属性名称();
比如:String name();
使用:@MyAnnotationDemo1(name="hello")
特别注意:注解的属性的类型只能是:基本类型、String、Class、枚举、注解类型及以上类型的一维数组。
注解属性的默认值:
类型 属性名称() default 默认值;
注解中的特殊属性:
类型 value(); 使用时,如果只给value设置值,可以这样用:@MyAnnotationDemo1(value="hello")或者@MyAnnotationDemo1("hello")
使用时,如果只给value设置值,还要给其他属性设置值,可以这样用:
@MyAnnotationDemo1(value="hello",name="aaa")
类型[] value();
使用方式如同value。
使用方式:四种都ok
// @MyAnnotationDemo1(value={"a","b"})
// @MyAnnotationDemo1({"a","b"})
// @MyAnnotationDemo1({"a"})
@MyAnnotationDemo1("a")
5、元注解:
定义:服务于注解的注解就是元注解。
***@Retention:注解的保留范围
RetentionPolicy.SOURCE:注解存在于源文件中
RetentionPolicy.CLASS:注解存在于源字节码文件中
RetentionPolicy.RUNTIME:注解存在于运行时
***@Target:注解出现的位置
@Documented: 用于指定被该元 Annotation 修饰的 Annotation 类将被 javadoc 工具提取成文档.
@Inherited: 被它修饰的 Annotation 将具有继承性.如果某个类使用了被 @Inherited 修饰的 Annotation, 则其子类将自动具有该注解
二、Servlet3.0的新规范
1、要求:
jdk6.0+
Tomcat7.0+
2、利用注解替代了web.xml配置文件
@WebServlet:配置Servlet的
@WebInitParam:配置Servlet、Filter的初始化参数
@WebFilter:配置过滤器
@WebListener:注册监听器
@MultipartConfig//证明客户端提交的表单数据是由多部分组成的
相关文章推荐
- 下载软件更新包更新软件
- hdu-1247
- 日期格式转换问题MappingException: Could not determine type for: java.sql.String
- Android 捕获全局异常信息并进行相关处理
- MLlearning(2)——simHash算法
- LeetCode Find the Duplicate Number(一次通过)
- FFmpeg 3.0 版发布
- SSIS ->> Environment Variables
- 拥抱高效、拥抱 Bugtags 之来自用户的声音(四)
- BestCoder Round #72 (div.2)
- Android运营商名称显示之PLMN的读取(原)
- 简单SQLite的使用
- UIBezierPath个人学习总结
- Mysql“集群”和”主从“两者的区别
- 这些年正Android - 母亲
- 06笨小猴(1.9)
- 初识Unity
- JZOJ 1164.求和
- 多线程访问共享对象和数据的方式
- Android 的性能工具用法 I-渲染分析工具