JavaEE之注解
1注解:Annotation注解,是一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次,给计算机,JVM提供解读信息的.
2注解的作用:编译检查:代码分析,编写文档:
注解的作用域:可以定义在类上,方法上,代码上
同一个位置只能使用一次,同一个注解
常用注解:
@Deprecated可以用来修饰类,表示已经过时的类;也可以用来修饰方法,表示已经过时的方法
@Override:用来测试方法是否为重写的方法
JDK1.5时,@Override只能检测类继承类重写的方法
* JDK1.6及以上,@Override即能检测类继承类重写的方法,又能检测类实现接口重写的方法
@SuppressWarnings 表示抑制警告,被修饰的类或方法如果存在编译警告,将被编译器忽略
deprecation ,或略过时rawtypes ,忽略类型安全
unused ,忽略不使用unchecked ,忽略安全检查
null,忽略空指针serial, 忽略序列号all,忽略所有
自定义注解
定义注解使用关键字: @interface
注解的属性相当于类中的成员变量和成员方法
属性格式:修饰符 返回值类型 属性名() [default 默认值]
修饰符:默认值 public abstract ,写不写都是public abstract。
返回值类型:基本类型、字符串String、Class、注解、枚举,以及以上类型的一维数组
属性名:自定义
default 默认值:[default 属性值]可以省略,[]不写入程序中
元注解
元注解:用来修饰自定义注解的JDK提供的注解
@Retention 用于确定被修饰的自定义注解生命周期如果注释类型声明中不存在 Retention 注释,则保留策略默认为
RetentionPolicy.CLASS
RetentionPolicy.SOURCE 被修饰的注解只能存在源码中,字节码class没有。用途:提供给编译器使用。
RetentionPolicy.CLASS 被修饰的注解只能存在源码和字节码中,运行时内存中没有。用途:JVM java虚拟机使用
RetentionPolicy.RUNTIME 被修饰的注解存在源码、字节码、内存(运行时)。用途:取代xml配置
@Target 用于确定被修饰的自定义注解使用位置
如果注释类型声明中不存在 Target 元注释,则声明的类型可以用在任一程序元素上。
ElementType.TYPE 修饰类、接口
ElementType.CONSTRUCTOR 修饰构造
ElementType.METHOD 修饰方法
ElementType.FIELD 修饰字段
自定义注解的解析
自定义注解的解析:使用自定义注解,获取自定义注解的属性值
和解析有关的接口:
*java.lang.reflect.AnnotatedElement接口
*所有已知实现类:
* AccessibleObject, Class, Constructor, Field, Method, Package
*接口中的方法:
*boolean isAnnotationPresent(Class annotationClass)
*如果指定类型的注释存在于此元素上,则返回 true,否则返回 false。
*判断(Constructor, Field, Method...)有没有指定的注解
*参数:注解的class文件对象,可以传递
MyAnnotation03.class(String.class,int.class)
*T getAnnotation(Class<T> annotationClass)
*如果存在该元素的指定类型的注释,则返回这些注释,否则返回 null。
*获取(Constructor, Field, Method...)上的注解,参数传递的是哪个注解的class文件对象,就获取哪个注解
*参数:注解的class文件对象,可以传递MyAnnotation03.class
JavaEE之注解的更多相关文章
- JAVAEE规范基础知识
JavaEE规范基础知识 本人博客文章网址:https://www.peretang.com/basic-knowledge-of-javaee-standard/ JavaEE简介 JavaEE,J ...
- @Resource 注解的作用【和 @Autowired 的对比】
今天看到一段代码使用的是 @Resource 的注解,的确是第一次看到这个注解,百度一查才知道,原来和 @Autowired 效果一样,但也有一定的区别. 两个注解都可以用来注入 bean ,@Res ...
- 枚举和注解@override、@Deprecated、@SuppressWarnings
一.枚举 简介: 1)枚举对应英文(enumeration,简写 enum) 2)枚举是一组常量的集合. 3)可以这里理解:枚举属于一种特殊的类,里面只包含一组有限的特定的对象. 实现方式: 1.自定 ...
- Spring boot 梳理 - Spring boot自动注册DispatcherServlet
spring boot提供的DispatcherServlet的name就是“dispatcherServlet”. 源码 public ServletRegistrationBean dispatc ...
- day30-注解
Java注解 1.注解的理解 注解(Annotation)也被称为元数据(Metadata),用于修饰解释 包.类.方法.属性.构造器.局部变量等数据信息 和注释一样,注解不影响程序逻辑,但注解可以被 ...
- JavaEE开发之Spring中的条件注解组合注解与元注解
上篇博客我们详细的聊了<JavaEE开发之Spring中的多线程编程以及任务定时器详解>,本篇博客我们就来聊聊条件注解@Conditional以及组合条件.条件注解说简单点就是根据特定的条 ...
- JavaEE开发之Spring中的条件注解、组合注解与元注解
上篇博客我们详细的聊了<JavaEE开发之Spring中的多线程编程以及任务定时器详解>,本篇博客我们就来聊聊条件注解@Conditional以及组合条件.条件注解说简单点就是根据特定的条 ...
- JAVAEE——spring02:使用注解配置spring、sts插件、junit整合测试和aop演示
一.使用注解配置spring 1.步骤 1.1 导包4+2+spring-aop 1.2 为主配置文件引入新的命名空间(约束) 1.3 开启使用注解代替配置文件 1.4 在类中使用注解完成配置 2.将 ...
- JAVAEE——BOS物流项目11:在realm中授权、shiro的方法注解权限控制、shiro的标签权限控制、总结shiro的权限控制方式、权限管理
1 学习计划 1.在realm中进行授权 2.使用shiro的方法注解方式权限控制 n 在spring文件中配置开启shiro注解支持 n 在Action方法上使用注解 3.★使用shiro的标签进行 ...
随机推荐
- BF算法 + KMP算法
准备: 字符串比大小:比的就是字符串里每个字符的ASCII码的大小.(其实这样的比较没有多大的意义,我们关心的是字符串是否相等,即匹配等) 字符串的存储结构:同线性表(顺序存储+链式存储) 顺序存储结 ...
- Webphere WAS 启动
如果WebSphere是默认安装的话,是自带两个profile,Dmgr和AppSrv,只需要到指定目录下启动管理器和节点即可/usr/IBM/WebSphere/AppServer/profiles ...
- Poj1426
Find The Multiple Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 25721 Accepted: 106 ...
- 160714、解决虚拟机上的tomcat无法被主机访问的问题
备注:我虚拟机是centos 6.5 在wmware中安装linux后安装好数据库,JDK及tomcat后启动服务,虚拟机中可以访问,但是主机却无法访问,但是同时主机和虚拟机之间可以ping的通 ...
- Vue.js_判断与循环
一.判断,条件语句 1.一元表达式判断 {{ ok ? 'show' : 'hide' }} 2.if判断 v-if='ok' <ol id="ifGrammar"> ...
- Remoting在多IP多网卡内外网环境下的问题
Remoting服务器端如果服务器有多块网卡,多个IP地址的情况下会出现客户端callback失败的问题,debug以后发现客户端会callback到服务器端另外一个IP地址(例如外网地址,而不是内网 ...
- delphi------项目类型
Console Application:控制台应用程序 writeln('HelloWorld'); //接收用户输入字符 readln: //直到用户输入回车结束 VCL Forms Applica ...
- 巨蟒python全栈开发-第3天
1 今日作业 1.有变量name = "aleX leNb" 完成如下操作: # 1)移除 name 变量对应的值两边的空格,并输出处理结果 '''''' ''' # name = ...
- runtime(二)
前言 上一篇中我们大致的了解了runtime的一些基本概念,这一篇我们一起来看看如何使用它. 3.如何使用runtime. 3.1 方法交换 举一个老生常谈的例子.当你接手一个新的项目,需要查看这个程 ...
- ES6通过Set数组去重
一.Set 1.定义 Set对象是ES6中新定义的数据结构,类似于数组,它允许你存储任何类型的唯一值,不管是原始值还是对象引用. 2.语法 new Set([iterable]) iterable:可 ...