githubJava技术分享

Spring Boot 学习总结之 Controller 注解

2017-06-18  本文已影响2504人  张少林同学
加油.png

Controller 是 Spring 中最基本的组件,主要是处理跟用户交互的,一般每个业务逻辑都会有一个 Controller,提供给用户 http 请求接口,用户请求接口进行数据访问。

掌握 Controller 的用法,一般掌握下面几个注解就差不多了,@Controller@RestController@RequestMapping@PathVariable@RequestParam@GetMapping

下面详细说下这些注解的用法:

@RestController//处理http请求,返回json格式
@RequestMapping(value = "/users")//配置url,让该类下的所有接口url都映射在/users下
public class UserController {
  
    @RequestMapping(value = "/myInfo", method = RequestMethod.GET)
    public String say() {
        return "我是张少林";
    }
}

@RequestMapping 定义在类上,指定该类下的所有接口 url 映射在 /users 下,定义在方法上,指定 请求方法,可以指定GETPOSTDELETEPUT四种标准的 Restfulapi请求方法。
那么此时的接口 url 为:http://127.0.0.1:8080/users/myInfo 请求方法:GET
类上也可以不用配置 url 映射的。

@RestController//处理http请求,返回json格式
public class UserController {

  @RequestMapping(value = "/myInfo", method = RequestMethod.GET)
  public String say() {
      return "我是张少林";
  }
}

此时接口 url 为: http://127.0.0.1:8080/myInfo 请求方法:GET 结果:在浏览器上显示 我是张少林

@RestController//处理http请求,返回json格式
@RequestMapping(value = "/users")//配置url,让该类下的所有接口url都映射在/users下
public class UserController {

    @RequestMapping(value = "/myInfo/{username}", method = RequestMethod.GET)
    public String say(@PathVariable("username") String username) {
        return username;
    }
}

此时接口 url 为:http://127.0.0.1:8080/users/myInfo/张少林,请求方法 GET 结果:浏览器上显示 张少林

@RestController//处理http请求,返回json格式
@RequestMapping(value = "/users")//配置url,让该类下的所有接口url都映射在/users下
public class UserController {

    @RequestMapping(value = "/myInfo", method = RequestMethod.POST)
    public String say(@RequestParam(value = "username") String username, @RequestParam(value = "password") String password) {
        return username + password;
    }
}

此时 接口 url 为:http://127.0.0.1:8080/users/myInfo?username=张少林&password=123456 请求方法:POST注意拼接地址参数必须与注解参数一致
使用 postman 来测试接口,结果为,输出 张少林123456
这时候假如用户没有传参数,就会报404错误。再添加两个设置 required = false:是否必穿。defaultValue:默认值

@RestController//处理http请求,返回json格式
@RequestMapping(value = "/users")//配置url,让该类下的所有接口url都映射在/users下
public class UserController {

    @RequestMapping(value = "/myInfo", method = RequestMethod.POST)
    public String say(@RequestParam(value = "username",required = false,defaultValue = "张少林") String username,
                      @RequestParam(value = "password",required = false,defaultValue = "123456") String password) {
        return username + password;
    }
}

试试不传参数,结果还是一样 ,输出 张少林123456

@RequestMapping(value = "/myInfo", method = RequestMethod.POST)

可以简化为:

 @PostMapping(value = "/myInfo")

声明:以上只是本人学习的一篇总结,若有不足之处还请在评论区指出

上一篇 下一篇

猜你喜欢

热点阅读