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请求参数(即查询参数或表单数据)绑定到控制器中的方法参数。
参考:
最新评论
我的是ipv4网络,如何使用直播源啊!
我今天试了,不想啊,我的是新疆昌吉移动的网络。
收不到验证码电报
现在充值29起了