出于兴趣,对tomcat7源码进行相关学习和整理。网上对于tomcat7框架的介绍已经很多了,在理解整体框架的基础上,接下来就是对于具体的每一个包每一个类进行相关研究,希望本人能坚持下去,读完每一行tomcat7源码,以此博客来监督自己。今天主要研究下annotation相关内容。
- annotation概念
元注解(meta-annotation):负责注解其他注解。
1.@Target 说明注解所修饰的范围,即注解用在什么地方,通过枚举类ElementType进行取值。
1).CONSTRUCTOR:用于描述构造器
2).FIELD:用于描述域
3).LOCAL_VARIABLE:用于描述局部变量
4).METHOD:用于描述方法
5).PACKAGE:用于描述包
6).PARAMETER:用于描述参数
7).TYPE:用于描述类、接口(包括注解类型) 或enum声明
2.@Retention:定义注解被保存的时间长短。表示需要在什么级别保存该注解信息,用于描述注解的生命周期,即被描述的注解在什么范围内有效。通过枚举类RetentionPolicy取值如下:
1).SOURCE:在源文件中有效(即源文件保留,编译器丢弃)
2).CLASS:在class文件中有效(即class保留,可能被虚拟机忽略)
3).RUNTIME:在运行时有效(即运行时保留,可以通过反射机制取得)
3.@Documented:可以被例如javadoc此类的工具文档化。Documented是一个标记注解,没有成员。
4.@Inherited - tomcat7中的annotation
其中包括安全相关注解和sql相关注解,基本都是运行时有效,可以通过反射进行控制。