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

时间: 2024-12-21 00:22:44

JavaEE之注解的相关文章

JAVAEE规范基础知识

JavaEE规范基础知识 本人博客文章网址:https://www.peretang.com/basic-knowledge-of-javaee-standard/ JavaEE简介 JavaEE,Java平台企业版,其提供了一个用于开发Web应用和企业应用的标准平台/规范. 意味着,所有d的JavaEE服务器厂商提供的JavaEE 容器/服务器 必然 包含/支持 JavaEE所有规范的实现.使用标准JavaEE规范开发并搭配JavaEE 容器/服务器 可令开发人员专注于业务层面上,而不需要分心

@Resource 注解的作用【和@AutoWired的对比】

今天看到一段代码使用的是 @Resource 的注解,的确是第一次看到这个注解,百度一查才知道,原来和 @AutoWired效果一样,但也有一定的区别. 两个注解都可以用来注入 bean ,@Resource 是JavaEE的注解,@AutoWired是Spring的注解,他俩写的地方是一样的,要么属性名上,要么 setter方法上,但是注入的依据有点不同 : 1 . @AutoWired 默认是按照类型进行装配的,而且要求被注入的 bean 必须存在,如果允许不存在的话,必须加上 requir

JavaEE开发之Spring中的条件注解、组合注解与元注解

上篇博客我们详细的聊了<JavaEE开发之Spring中的多线程编程以及任务定时器详解>,本篇博客我们就来聊聊条件注解@Conditional以及组合条件.条件注解说简单点就是根据特定的条件来选择Bean对象的创建.条件注解就是可以根据不同的条件来做出不同的事情.在Spring中条件注解可以说是设计模式中状态模式的一种体现方式,同时也是面向对象编程中多态的应用部分.而组合注解就是将现有的注解进行组合.下方会给出具体的介绍和实例. 一.条件注解[email protected] 本篇博客的本部分

JavaEE之--------SpringMVC框架的搭建(注解实现)

Spring这个强大的平台,可以放很多bean,当然像之前那样自己配置多个类确实麻烦 现在采用简单的注解实现 首先我们需要导入spring的包,带很多种 我们需要配置spring的配置文件 首先我们查看web.xml文件的配置 <span style="font-size:18px;"><?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0&

javaEE之------Spring-----》 AspectJ注解

前面介绍了下Spring中的切面技术.如今说下採用注解的方式进行切面 首先肯定和之前的一样.须要一个自己主动代理的注解类 AnnotationAwareAspectJAutoProxyCreator 配置文件里的代码: <?xml version="1.0" encoding="UTF-8"? > <beans xmlns="http://www.springframework.org/schema/beans" xmlns:x

JAVAEE——spring02:使用注解配置spring、sts插件、junit整合测试和aop演示

一.使用注解配置spring 1.步骤 1.1 导包4+2+spring-aop 1.2 为主配置文件引入新的命名空间(约束) 1.3 开启使用注解代替配置文件 1.4 在类中使用注解完成配置 2.将对象注册到容器 //<bean name="user" class="cn.itcast.bean.User" /> //@Component("user") // @Service("user") // servic

[Servlet3.0新特性]注解替代配置文件

需要注意的是,如果使用Servlet 3.0版本的话:首先Tomcat服务器必须使用7.0版本以上的(老版本不提供3.0版本),其次Eclipse创建Web工程时选择3.0版本. Servlet 3.0版本允许使用注解方式来替代web.xml文件中配置Servlet.Filter和Listener的信息,首先回忆一下web.xml文件是如何配置Servlet.Filter和Listener的: <?xml version="1.0" encoding="UTF-8&qu

JavaEE学习之Spring aop

一.基本概念 AOP——Aspect-Oriented Programming,面向切面编程,它是spring框架的一个重要组成部分.一般的业务逻辑都有先后关系,我们可以理解为纵向关系,而AOP关注的是横向关系,每一个关注点可以理解为一个横切面.例如我们的大部分代码都会涉及到日志记录,很多的数据库操作都会涉及到事务的创建和提交.那么从横向关注这些逻辑,他们都一个个的切面. AOP技术的具体实现,可以通过动态代理技术或者是在程序编译期间进行静态的"织入"方式.AOP经常使用的场景包括:日

Spring中@Resource、@controller注解的含义

@Resource 注解被用来激活一个命名资源(named resource)的依赖注入,在JavaEE应用程序中,该注解被典型地转换为绑定于JNDI context中的一个对象. Spring确实支持使用@Resource通过JNDI lookup来解析对象,默认地,拥有与@Resource注解所提供名字相匹配的"bean name(bean名字)"的Spring管理对象会被注入. 在下面的例子中,Spring会向加了注解的setter方法传递bean名为"dataSour