SpringBoot - @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 {};

    //指定请求的类型 如Get,Post
    RequestMethod[] method() default {};

    //指定请求的参数
    String[] params() default {};

    //指定请求的请求头
    String[] headers() default {};

    //指定请求的Content-type
    String[] consumes() default {};

    //设置响应类型 Content-type
    String[] produces() default {};
}

1.name属性

此处name属性,相当于方法的注释,使方法更易理解

    @RequestMapping(path="login",name="用户登录")
    public String login(...){
        ...
    }

2.path与value属性

请求映射的名称 path与value作用都是一样的,并且都支持数组 写多个映射

    @RequestMapping(value={"login","user/login"})
    public String login(...){
        ...
    }

    @RequestMapping(value="loginOut")
    public String loginOut(...){
        ...
    }

3.method属性

设置请求的类型 如Get,Post,Delete,Put......

    @RequestMapping(value={"login","user/login"},method = {RequestMethod.GET,RequestMethod.POST})
    public String login(...){
        ...
    }

    @RequestMapping(value="loginOut",method = RequestMethod.POST)
    public String loginOut(...){
        ...
    }

4.params,headers,consumes,produces 属性

params 指定请求的参数,headers 指定请求的请求头,consumes 指定请求的类型(Content-Type)

produces 指定响应的类型(Content-Type)

    @RequestMapping(
            value="index",
            params = {"name","age=18"},
            headers = {"Accept","Content-Type=application/json"},
            consumes = "application/json",
            produces = "application/json;charset=UTF-8"
    )
    public String login(){
        return "Success";
    }

params请求的参数必须有name字段 age为18

header请求的请求头必须有Accept,Content-Type的值为application/json

consumes请求的请求内容,Content-Type的值为application/json

produces响应的内容格式为application/json;charset=UTF-8,就是叫游览器以json的格式显示返回给游览器的数据 编码为UTF-8

posted on 2022-12-30 17:03  Mikasa-Ackerman  阅读(171)  评论(0编辑  收藏  举报

导航