美文网首页
注解学习第二天

注解学习第二天

作者: 轰轰_9ccd | 来源:发表于2018-12-24 18:11 被阅读0次

@RequestParam详解

@RequestParam是传递参数的.

@RequestParam用于将请求参数区数据映射到功能处理方法的参数上。

请求中包含username参数(如/requestparam1?userName=zhang),则自动传入。

接下来我们看一下@RequestParam注解主要有哪些参数:

value:参数名字,即入参的请求参数名字,如username表示请求的参数区中的名字为username的参数的值将传入;

required:是否必须,默认是true,表示请求中一定要有相应的参数,否则将报404错误码;

defaultValue:默认值,表示如果请求中没有同名参数时的默认值,默认值可以是SpEL表达式,如“#{systemProperties['java.vm.version']}”。

@RequestParam(value ="pageNumber",defaultValue ="1") Integer pageNumber

 原子类型:必须有值,否则抛出异常,如果允许空值请使用包装类代替。

Boolean包装类型类型:默认Boolean.FALSE,其他引用类型默认为null。

public String requestparam5(

@RequestParam(value="username", required=true, defaultValue="zhang") String username) 


如果没有传入参数,则默认是"zhangsan".

但是在传递参数的时候如果是url?userName=zhangsan&userName=wangwu时怎么办呢?

其实在实际roleList参数入参的数据为“zhangsan,wangwu”,即多个数据之间使用“,”分割;我们应该使用如下方式来接收多个请求参数:

publicString requestparam8(@RequestParam(value="userName") String [] userNames)

或者是:

publicString requestparam8(@RequestParam(value="list") List list)


Java注解之Retention、Documented、Target介绍

Retention注解

Retention(保留)注解说明,这种类型的注解会被保留到那个阶段. 有三个值:

1.RetentionPolicy.SOURCE —— 这种类型的Annotations只在源代码级别保留,编译时就会被忽略

2.RetentionPolicy.CLASS —— 这种类型的Annotations编译时被保留,在class文件中存在,但JVM将会忽略

3.RetentionPolicy.RUNTIME —— 这种类型的Annotations将被JVM保留,所以他们能在运行时被JVM或其他使用反射机制的代码所读取和使用.

下面示例中, @Retention(RetentionPolicy.RUNTIME)注解表明 Test_Retention注解将会由虚拟机保留,以便它可以在运行时通过反射读取.

Documented 注解

Documented 注解表明这个注解应该被 javadoc工具记录. 默认情况下,javadoc是不包括注解的. 但如果声明注解时指定了 @Documented,则它会被 javadoc 之类的工具处理, 所以注解类型信息也会被包括在生成的文档中.(个人观点:不是重点,了解即可。勿喷)

Target注解

@Target说明了Annotation所修饰的对象范围:Annotation可被用于 packages、types(类、接口、枚举、Annotation类型)、类型成员(方法、构造方法、成员变量、枚举值)、方法参数和本地变量(如循环变量、catch参数)。在Annotation类型的声明中使用了target可更加明晰其修饰的目标。

作用:用于描述注解的使用范围(即:被描述的注解可以用在什么地方)

取值(ElementType)有:

1.CONSTRUCTOR:用于描述构造器

2.FIELD:用于描述域

3.LOCAL_VARIABLE:用于描述局部变量

4.METHOD:用于描述方法

5.PACKAGE:用于描述包

6.PARAMETER:用于描述参数

7.TYPE:用于描述类、接口(包括注解类型) 或enum声明

Inherited 注解

这是一个稍微复杂的注解类型. 它指明被注解的类会自动继承. 更具体地说,如果定义注解时使用了 @Inherited 标记,然后用定义的注解来标注另一个父类, 父类又有一个子类(subclass),则父类的所有属性将被继承到它的子类中.

相关文章

  • 注解学习第二天

    @RequestParam详解 @RequestParam是传递参数的. @RequestParam用于将请求参数...

  • 自定义注解与提取注解学习

    上一篇: java 注解学习上篇文章中学习了系统内置注解与元注解(@Retention, @Target, @In...

  • Android & Java 注解和自定义注解处理器

    写在前面:本文是实际工作中学习成果,记为笔记 目录 背景 什么是注解 注解实战:动态注解 注解实战:静态注解 注解...

  • 解读注解使用

    一、注解:深入理解JAVA注解 要深入学习注解,我们就必须能定义自己的注解,并使用注解,在定义自己的注解之前,我们...

  • MyBatis缓存和注解

    Mybatis缓存和注解 学习目标 1、mybatis缓存 2、mybatis注解 学习内容 1、mybatis缓...

  • mybatis学习笔记二-注解、代理、逆向工程

    [TOC] mybatis注解的使用 为什么学习注解?学习注解有什么好处?学完能做什么? 1、能够读懂别人写的代码...

  • Retrofit 注解学习

    Retrofit 注解学习

  • Java中注解学习系列教程-3

    本文是《Java中注解学习系列教程》第三篇文章 在前两篇中我们学习了注解的定义、JDK内置注解、注解分类及自定义注...

  • Java一注解全面分析

    目录 一、为什么要学习注解呢? 二、什么是注解(Annotation) 三、注解有什么作用 四、注解的分类 五、注...

  • 注解学习

    1、注解学习 @GetMaping RequestMapping 和GET方式 和起来 @PathVariable...

网友评论

      本文标题:注解学习第二天

      本文链接:https://www.haomeiwen.com/subject/pbxbkqtx.html