SpringMvc常用的注解使用

1 @Controller注解

  @Controller注解表明了一个类是作为控制器的角色存在的,

@Controller 
public class UserController { 
    // ...
 }

2.@RequestMapping注解

  @RequestMapping注解是将请求URL,如“/user”等,映射到整个类上或某个特定的方法上面,一般情况下,类级别的注解负责将一个特定(或符合某种模式)的请求路径映射到一个控制器上,同时通过方法级别的注解来细化映射,即根据特定的HTTP请求方法(GET、POST方法等)、HTTP请求中是否携带特定参数等条件,将请求映射到匹配的方法上。

@Controller 
public class UserController { 
    @RequestMapping("/user") 
    public String user() { 
        return "user"; 
    } 
} 
没有指定请求必须是GET方法还是PUT/POST或其他方法,@RequestMapping注解默认会映射所有的HTTP请求方法。如果仅想接收某种请求方法,请在注解中指定之@RequestMapping(path = "/user", method= RequestMethod.GET)以缩小范围。

3 @PathVariable注解

  @PathVariable注解用在方法参数上,将其与URI模板中的参数绑定起来,

@RequestMapping(path="/user/{userId}", method=RequestMethod.GET) 
public String userCenter(@PathVariable("userId") String userId, Model model) { 
    UserDTO user = userService.get(userId); 
    model.addAttribute("user", user);
    return "userCenter"; 
}
URI模板"/user/{userId}"指定了一个变量名为userId。当控制器处理这个请求的时候,userId的值就会被URI模板中对应部分的值所填充。比如说,如果请求的URI是/userId/1,此时变量userId的值就是1。

4. @GetMapping注解

  @GetMapping注解是一个组合注解,是@RequestMapping(method = RequestMethod.GET)的缩写。该注解将HTTP GET映射到特定的处理方法上。可以使用@GetMapping("/user")来代替。

  @RequestMapping(path="/user",method= RequestMethod.GET)。还有@PostMapping、@PutMapping、@DeleteMapping等同理。
 
5.@RequestBody注解
  @RequestBody注解用于读取Reqeust请求的body部分数据,使用系统默认配置的HttpMessageConverter进行解析,然后把相应的数据绑定到要返回的对象上,再把HttpMessageConverter返回的对象数据绑定到Controller中方法的参数上。
@Controller 
public class UserController {
     @GetMapping("/user") 
    public String user(@RequestBody User user) {
         //... 
     return "user";
} }

6 @ResponseBody注解

  @ResponseBody注解用于将Controller的方法返回对象,通过适当的HttpMessageConverter转换为指定格式后,写入到Response对象的body数据区。比如获取JSON数据,加上@ResponseBody后,会直接返回JSON数据,而不会被解析为视图。

@Controller 
public class UserController { 
    @ResponseBody 
   @GetMapping(
"/user/{userId}") public User info(@PathVariable("userId") String userId) { UserDTO user = userService.get(userId); return user; } }

7@RestController注解

  @RestController注解是一个组合注解,即@Controller+ @ResponseBody的组合注解,请求完成后,会返回JSON数据。


 
 

 

posted @ 2020-08-03 22:12  金鑫金  阅读(233)  评论(0编辑  收藏  举报