一.注解
在SpringMVC中使用@RequestMapping来做 请求地址映射,可以用在方法上也可以用在类上。就是通过指定控制器可以处理哪些url请求,相当于servlet在web.xml中配置servelt和servletMapping的作用。
@RequestMapping注解类源码中有下面几个注解
@Target({ElemrntType.METHOD,ElementType.TYPE})表示可以用与类和方法上面
@Target表示元注解,说明了Annotation所修饰的对象范围:Annotation可被用于packages,types(类,接口,枚举,Annotation类型),类型成员(方法,构造方法,成员变量,枚举值),方法参数和本地变量(如循环变量,catch参数)。
•ElementType 用于描述注解的使用范围,即被描述的注解可以用在什么地方
•TYPE:用于类和接口(包括注解类型)或enum声明
•FIELD:用于描述域(成员变量)
•METHOD:用户描述方法
•PARAMETER:用于描述参数
•CONSTRUCTOR:用于描述构造器
•LOCAL_VARIABLE:用于描述局部变量
•ANNOTATION_TYPE:用于描述注解
•PACKAGE:用于描述包
•TYPE_PARAMETER:用于描述类型参数
•TYPE_USE:能标注任何类型名称
•
@Documented表示在用javadoc命令生成文档的时候会有注解,不加就没有注解,对类做辅助说明
@Retention(RetentionPolicy.RUNTIME)
@Retention定义被它所注解的注解保留多久,定义在RetentionPolicy枚举中
一般有三种策略:
•source:注解中保留在源文件,当java文件编译成class文件被编译期忽略
•class:注解被保留到class文件,单jvm加载class文件的时候被遗弃,这是默认的生命周期
•runtime:注解不仅被保留到class文件中,jvm加载class文件之后,依然存在。
这个三个生命周期分别对应于:java源文件(.java),.class文件,内存中的字节码
@Mapping
•@mapper注解支持纯注解开发和持久层接口映射配置文件开发 通过持久层接口映射的配置文件中mapper的namespace的接口地址生成bean注入业务层
•@repository注解支持纯注解开发和持久层接口映射配置文件开发 需要在启动类上加上@MapperScan注解表明mapper接口路径
二.参数
1.method 用来限制请求方式,可以是数组,同时指定多个请求方式
http定义了多种请求资源的方式,最基本的有四种:get(查),post(增),put(改),delete(删),而url用来定义网络上的资源,配合四种请求方式来实现对资源的增删改查操作
get,post同样可以完成put和delete操作,而post也可以完成get操作,因为post需要发送表单。重要的是浏览器表单只支持 GET 和 POST 请求
2.params用来限制请求参数,指追加在url上的键值对,用?和&隔开
3.headers用来限制请求头的内容,仅处理该种请求
用http协议交互的信息被称为http报文,有请求报文和响应报文两种。报文由报文头部和报文体组成。
请求头有许多关于客户端和请求正文的信息。如浏览器支持的语言,客户端的操作系统,请求的服务器地址等
响应头包含服务器的类型,日期,响应内容的类型及编码,响应内容的长度等。
4.path,value 这两个作用一样,用来限制请求路径,如果只有这一个属性可以省略。可以是数组表示能够匹配多个请求路径。
ant风格,模糊匹配
•? 表示任意的单个字符
- 表示任意的0个或多个字符
- 表示任意的一层或多层目录
5.consumes限制内容类型(Content-Type)例如application/json,text/html
6.produce限制请求头中accept类型,并指定返回相同类型。
7.PathVariable表示可以通过占位符来拿数据 在value属性中用{“站位符”}站位,再在方法参数中用@PathVariablel(“站位符”)来拿这个参数。