学习目标:通过JavaWeb注解,了解注解开发模式,为spring注解开发铺路。
1. 简述
注解不是注释,注释是程序员写的,给程序员看的。 注解给程序看的,用于描述程序如何运行及在什么阶段来运行。
注解在实际开发中,最大的功能是用于替换配置文件。
注解是jdk1.5的新特性
可以通过反射来让注解具有功能。
注解的格式: @xxxx
注解的本质是一个接口,这个接口需要继承 Annotation接口
2. Java中的三个基本注解
@Override:检查子类确实是覆盖/重写了父类的方法。 当我们重写覆盖父类方法时,很多编辑器都会自动帮我们加上这个注解
@Deprecated:在方法上加上这个注解,说明该方法已经过时了,不建议使用
@SuppressWarnings({ “unused”, “deprecation” }):抑制程序中的警告。unused警告的类型。。all抑制所有警告
3. 声明注解(了解)
如何声明注解
- Step1:创建一个注解 @interface 注解名{}
- Step2:声明注解中的成员(注解的属性类型可以有哪些?) 1.基本类型 2.String 3.枚举类型 4.注解类型 5.Class类型 6.以上类型的一维数组类型 Step3:使用注解
现在这个注解没有任何作用,但是我们能够通过反射获取注解中的值,然后将这些值注入到model中(或程序中)
在开发中,通常都是使用框架自带的注解 对自定义注解感兴趣的可以自行百度学习
4. 元注解(重要)
用于修饰注解的注解被称为元注解。
注解的存活范围分为
- SOURCE:源文件阶段生效
- CLASS:字节码文件阶段生效
- RUNTIME:运行时生效
若为SOURCE、CLASS,则在运行时注解已经失效,因此不能通过反射访问注解。
代码语言:javascript复制自定义注解的生命周期默认是CLASS(在CLASS中生效)
四个元注解:
- @Retention:用来描述被修饰的注解的生命周期
- RetentionPolicy
- SOURCE
- CLASS
- RUNTIME
- RetentionPolicy
- @Target:用于指定被修饰的注解的适用范围,即被修饰的注解可以用来修饰哪些程序元素。
- ElementType:
- TYPE:
- METHOD:
- FIELD:
- ANNOTATION_TYPE
- ElementType:
- @Documented:用于指定被修饰的注解将被javadoc工具提取成文档。
- @Inherited:用于指定被@Inherited修饰的注解具有继承性,可以被继承。
5. Servlet常用注解
@WebServlet 指定映射路径
通过localhost:8080/DownloadServlet就可以访问该Servlet
@WebFilter 声明该Filter的作用对象
@WebFilter("/*")表示对任意访问路径都生效