RequestMapping :
源码:
@Target({ElementType.TYPE, ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Mapping
public @interface RequestMapping {
String name() default "";
@AliasFor("path")
String[] value() default {};
@AliasFor("value")
String[] path() default {};
RequestMethod[] method() default {};
String[] params() default {};
String[] headers() default {};
String[] consumes() default {};
String[] produces() default {};
}
☆可以看到value与path是相互作为别名
☆method表示请求的类别:post、get。。。其中RequestMethod为一个枚举类。 页面上的超链接请求默认为GET请求。 另外一个GET请求去请求有个定义为POST的Controller的方法时不可行,将报错(405)
☆params规定一个发送请求时,必须要传入的参数,如果未传入,将报错(400)
当有params={“login”}时,发送请求就必须带login这个参数;
当有params={“login=true”}时,发送请求就必须带login这个参数,且参数必须为true
☆headers规定请求的的报文中必须包含的报头
☆consumes规定了请求的数据类型,如consumes = "application/json"表示请求必须是json格式的
☆produces规定了请求响应的数据类型,如 produces="application/json"表示请求返回的数据类型为Json。produces与ResponseBody一起出现