Java 注解简单学习
来源:互联网 发布:sql语句排序降序 编辑:程序博客网 时间:2024/04/29 23:29
1、注解的概述:
注解是用来替代配置文件的!你回忆一下,我们以前总是要写一些配置文件,例如web.xml你还记得么?里面要写<servlet>和<servlet-mapping>!谁来读配置文件呢?当然是Tomcat!谁来写配置文件呢?当然是我们来写了!
在Servlet3.0中就可以使用使用注解来代替配置文件,开发者就不用再写配置文件了,而是写注解,然后Tomcat来读取注解。注解也是类,需要定义了才能使用!分别在Servlet3.0中有一个注解类为@WebServlet,然后我们就可以在Servlet中使用
@WebServlet中使用这个注解了。这个注解就是用来替代<servlet>了。然后Tomcat会通过反射来读取注解中的信息!
小结:
注解的语法:@注解名称
注解的作用:替代xml配置文件!
2、Java中的注解:
- @Overrid:作用在方法上的注解。当方法不是重写父类的方法时会报错;
- @Deprecated:作用在方法上。标记该方法为作废方法(已过时);
- @SuppressWarnings:作用在方法上,压制警告。
3、注解的使用:
- 定义注解类:框架的工作
- 使用注解:我们的工作
- 读取注解(反射):框架的工作
4、定义注解类:
定义注解类不能使用class、enum,也不能使用interface,而是使用@interface。
eg.5、使用注解的目标:
注解可以使用在类(接口或枚举)、属性、方法、构造器、包、参数、局部变量。
eg.
6、注解的属性:
定义注解时,也可以给出属性。
其中value就是属性!你可能会说,它是一个方法!没错,它是一个方法,但我们非要称之为属性,因为把它当做属性更加好理解。当为注解指定属性后,那么在使用注解时就必须要给属性赋值了:
注解的属性还可以有默认值,在使用注解时就可以不给带有默认值的属性赋值了。但没有给出默认值的属性还是要赋值的。
在使用注解时,如果只给名为value的属性赋值,那么可以不给出属性的名称直接给出值
cop
- 注解的属性后面要有一对圆括号,而且圆括号内不能给出东西。就像是无参的方法一样;
- 注解的属性类型只能是:基本类型、String、Enum、Class、注解类型、以上类型的一维数组类型;
- 注解的属性可以有默认值,例如:int a() default 100;
- 数组的属性默认值:int[] arr() default {1,2,3},这里不能使用new int[]{1,2,3}
- 使用注解时,在给数组属性赋值时的格式:@MyAnn(arr={1,2,3});
注解属性的类型
> 8种基本类型
> String
> Enum
> Class
> 注解类型
> 以上类型的一维数组类型
当给数组类型的属性赋值时,若数组元素的个数为1时,可以省略大括号。
eg
7、注解的作用目标:(@Target)
在定义注解时可以限制注解的作用目录!例如让注解只能作用在类和方法上。
这需要使用元注解:@Target。该注解有一个属性value,类型为ElementType[],它是枚举类型。
Target注解的源码如下:
在定义注解时,可以使用@Target注解来限制注解的作用目标:
这样MyAnn就只能作用在类和方法上的!其中ElementType.TYPE表示类和接口。
copy
8、注解的保留策略:(@Rentention)
- 注解的保留策略是指,注解是只保留在源代码上,还是保留到class文件上,再或者是类在运行时,可以被类加载器加载到内存中。
- 如果希望注解被反射,那么注解就要保留到运行时,而不是源代码或类文件上。
- 指定注解的保留策略需要使用元注解@Retention,它有一个value属性,类型为RetentionPolicy类型,RetentionPolicy是枚举类型
下面代码是指定注解保留到运行时:
9、注解处理器
view plain cop
前面我们介绍了如何定义一个注解,并且阐述了定义注解的属性以及注解可以使用的位置等。那么我们的注解如何才能开始工作呢?即我们的注解内部该如何处理?这个时候我们就需要定义一个注解处理器了。
注解处理器定义了该注解的处理逻辑,下边我们举例说明。
要求:定义一个注解 @Retry ,该注解的功能是每隔一定的时间执行一次该方法,一共执行指定的次数。
好的,根据题意,我们可以定义如下的注解。
接着是我们的注解处理器:测试类如下:如此,我们即定义了一个完整的注解@Retry,实现了在每隔固定的时间执行方法一次,一共执行指定的次数。
总结:
1、注解的定义使用@interface标识
2、注解可以定义属性,并且可以拥有默认值
3、注解可以作用在类(接口或枚举)、属性、方法、构造器、包、参数、局部变量。
4、注解处理器定义了注解的处理逻辑,涉及到反射机制、线程机制等。
如果对你有帮助,记得点赞哦~欢迎大家关注我的博客,可以进群366533258一起交流学习哦~
本群给大家提供一个学习交流的平台,内设菜鸟Java管理员一枚、精通算法的金牌讲师一枚、Android管理员一枚、蓝牙BlueTooth管理员一枚、Web前端管理一枚以及C#管理一枚。欢迎大家进来交流技术。
- Java 注解简单学习
- Java 注解简单学习
- java注解简单学习
- 学习Java注解及简单应用栗子
- JAVA注解简单例子
- Java简单注解
- java注解简单示例
- Java注解简单介绍
- Java注解简单介绍
- java注解简单入门
- java注解简单使用
- Java 注解的简单学习与应用 Annotation
- java--注解简单介绍及自定义注解
- Java 注解学习
- java 注解的学习
- java 注解 学习
- java 注解 学习
- java注解学习
- 懒部署 VS 快速部署
- CentOs 常用命令
- B
- 滚粗后-高中常用N相关化学方程式
- hdu1078 fatmouse and cheese 记忆化搜索
- Java 注解简单学习
- FTP指令
- PathMatchingResourcePatternResolver
- java自定义实现rpc+hadoop对rpc的实现
- 牛客网---2016---去哪儿字符串替换
- 常用链接
- 在matlab下DTMF信号生成检测思路(导师指导)
- static静态成员或类成员/静态函数
- CentOs 编译php 遇到的一些问题