Java自定义注解

Java自定义注解

1. 什么是注解?
注解是一种能被添加到java代码中的元数据,类、方法、变量、参数和包都可以用注解来修饰。注解对于它所修饰的代码并没有直接的影响。
2. 注解作用
1.生成帮助文档。这是最常见的,也是 Java 最早提供的注解。常用的有 @see、@param 和 @return 等;
2.跟踪代码依赖性,实现替代配置文件功能。作用就是减少配置。现在的框架基本都使用了这种配置来减少配置文件的数量;
3.在编译时进行格式检查。如把 @Override 注解放在方法前,如果这个方法并不是重写了父类方法,则编译时就能检查出。
3. 注解的特点
*_注解可以在变量,方法,类之上加载
*_注解可以有属性也可以没有属性 @Override @Test(timeout=1000)
*_注解有作用范围(源码,编译期间,运行期间)
1.源码期间有效: String类之上@Author,@Since,@See
作用:使用命令javadoc命令将当前的源码生成帮助文件, 可以识别String类上的相关的注解
2.编译期间有效: @Override @Deprecated @Suppresswarning
作用:告诉编译器部分信息
3.运行期间有效: @Test
作用:当我们再当前代码上以Junit方式运行时,Junit会运行方法上包含@Test注解的方法
4. 如何自定义注解
注解其实就是一种标记,可以在程序代码中的关键节点(类、方法、变量、参数、包)上打上这些标记,然后程序在编译时或运行时可以检测到这些标记从而执行一些特殊操作。因此可以得出自定义注解使用的基本流程:
第一步,定义注解——相当于定义标记;
第二步,配置注解——把标记打在需要用到的程序代码中;
第三步,解析注解——在编译期或运行时检测到标记,并进行特殊操作。

格式:
public @interface 注解名称{
public 属性类型 属性名称1();
public 属性类型 属性名称2() default 默认值;
}
在这里插入图片描述

自定义注解属性支持的类型: 基本数据类型(4类8种),String,Class,Annotation(注解类型),枚举类型,以及以上类型的一维数组类型
注解作用: 配置作用
配置:开发的时候部分信息不希望写死在程序中,例如数据库的用户名和密码,可以将用户名和密码存放在.txt , .properties , .xml文件中,利用程序来读取文件中的内容
框架:一大堆工具类组合,目的:加速项目开发
后期的学习中,框架部分spring很多信息需要配置,提供了2种形式配置 (xml,注解)
什么时候用注解来做配置?
如果配置信息不会发生的修改,例如servlet路径,建议使用注解的形式
如果配置信息需要发生频繁的修改,例如数据库的用户名和密码信息,建议采用传统方法 (.txt , .properties , .xml)
5. 案例:模拟Junit
1、自定义注解@MyTest
通过元注解@Rentention @Target声明当前注解作用域以及目标对象,如果没有声明,在运行期间是无法获取到注解的信息
在这里插入图片描述

2、定义UserDao
创建4个方法addUser、 delUser、 uptUser、 getUser ,在前三个方法上加载注解
在这里插入图片描述

3、定义类MyJunit
模拟Junit,将UserDao.class文件加载到内存,获取到字节码文件上所有的方法
遍历方法,判断每个方法上是否加载了@MyTest注解
如果当前方法上设置@MyTest,执行当前的方法
在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值