Spring Boot常用注解

洼地云 tuoyidashi.png

1.@SpringBootApplication

@SpringBootApplication注解等价于以默认属性使用@Configuration, @EnableAutoConfiguration 和 @ComponentScan 。

官方文档:Using the @SpringBootApplication Annotation

2.@RestController

为了方便的使用注解@Controller@ResponseBody,可以使用@RestController直接代替前面两个注解。

带有此批注的类型被视为控制器,其中@RequestMapping方法默认采用@ResponseBody语义。

以前控制器前使用@Controller,如果不在方法前添加@ResponseBody注解,下面的方法一般就会经视图解析器解析直接返回到success.jsp页面


@RequestMapping(value = "/loginSuccess") public String loginSuccess(SrClass srClass) { return "success"; }

现在控制器直接使用@RestController,就相当于在loginSuccess前添加了@ResponseBody,前台得到的只是success字符串。

阅读 >>> Spring注解@Controller和@RestController的区别?

官方文档:Annotation Type RestController

3.@RequestMapping

使用@RequestMapping注解来将请求URL,如/appointments等,映射到整个类上或某个特定的处理器方法上。

参考:使用@RequestMapping注解映射请求路径Spring MVC @RequestMapping注解详解

4.@RequestBody

您可以使用@RequestBody批注通过HttpMessageConverter将请求主体读取并反序列化为Object。

@PostMapping("/accounts")
public void handle(@RequestBody Account account) {
    // ...
}

官方文档:@RequestBody

5.@ResponseBody

用在控制器的方法前,使用此注解,控制器的方法不再走视图解析器,直接将方法的返回值以json/xml等返回到WEB响应主体。

例:

@RequestMapping("/login")
@ResponseBody
public User login(User user){
  return user;
}

在前台接收到的数据格式(假设User字段userName,pwd):

{"userName":"xxx","pwd":"xxx"}

等同于:

@RequestMapping("/login")
public void login(User user, HttpServletResponse response){
  response.getWriter.write(JSONObject.fromObject(user).toString());
}

官方文档:Annotation Type ResponseBody

6.@RequestHeader

例:

@Controller
public class HelloController {

    @RequestMapping(value = "/hello.htm")
    public String hello(@RequestHeader(value="User-Agent") String userAgent)

    }
}

我们String userAgent使用@RequestHeader注释绑定参数。当spring映射请求时,它将使用名称“User-Agent”检查http header,并将其值绑定到String userAgent。

如果您指定的头值在请求中不存在,Spring将初始化具有空值的参数。如果要设置参数的默认值,可以使用defaultParameter弹簧@RequestHeader注释的属性进行设置。

@RequestMapping(value = "/hello.htm")
public String hello(@RequestHeader(value="User-Agent", defaultValue="foo") String userAgent)

}

7.@RequestParam

您可以使用@RequestParam批注将Servlet请求参数(即查询参数或表单数据)绑定到控制器中的方法参数。

参考:

  1. Spring的@RequestHeader注释
  2. @ResponseBody注解的使用
  3. 官方文档-Annotated Controllers
赞(0)
未经允许禁止转载:优米格 » Spring Boot常用注解

评论 抢沙发

合作&反馈&投稿

商务合作、问题反馈、投稿,欢迎联系

广告合作侵权联系

登录

找回密码

注册