springboot部分常用注解
目录:【持续更新。。。。。】
spring 部分常用注解
spring boot 学习之路1(简单入门)
spring boot 学习之路2(注解介绍)
spring boot 学习之路3( 集成mybatis )
spring boot 学习之路4(日志输出)
spring boot 学习之路5(打成war包部署tomcat)
spring boot 学习之路6(定时任务)
spring boot 学习之路6(集成durid连接池)
spring boot 学习之路7(静态页面自动生效问题)
spring boot 学习之路8 (整合websocket(1))
spring boot 学习之路9 (项目启动后就执行特定方法)
1. @RestController 和@Controller
控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后,返回给前台页面
@Controller 的作用 :声明这是一个controller类,然后使用@RequestMapping ,@ResponseBody等一些注解用以定义URL 请求和Controller 方法之间的映射,使Controller 被前端访问。
@Controller public class AnnotController { @ResponseBody @RequestMapping("/hello") public String hello() { return "Hello huhy"; } }
@RestController : 从spring4.0版本开始出现.看下图的官方解释,会发现,@RestController 其实已经包含了@Controller 和@ResponseBody ,会默认使用@ResponseBody(可以参考spring boot语法)
@RestController public class AnnotController{
@RequestMapping("/hello")
public String hello() {
return "Hello huhy";
}
}
注意 : 其中@ResponseBody会处理返回的数据格式,使用了该类型注解后返回的不再是视图,不会进行转跳,而是返回json或xml数据格式,输出在页面上。
如果在类上使用@Controller注解, 可以在需要的方法上单独添加@ResponseBody ,而使用@RestController相当于在所有的方法上都默认使用了@ResponseBody注解
2. @RequestParam(?传值) @RequestBody(指定返回的结果以json或者xml形式) @PathVariable(地址栏传参,常见的是restful风格) 常用参数绑定注解
①@PathVariable 直接通过URL传参时使用,URL形式:http://localhost:port/path/参数
@RestController @RequestMapping("demoAnnot") public class testController { @RequestMapping(value = "/hello/{name}/{age}", method = RequestMethod.GET) public String hello(@PathVariable("name") String name,@PathVariable("age") int myAge) { return "我是" + name +"年龄 " + myAge; } }
注意: 通过@PathVariable("***")的形式可以获取指定URL中的参数,此时可以修改变量的名字,如上面的age参数, 如果不需要修改参数名则可以按照URL中参数的顺序写成如下形式
public String hello(@PathVariable String name,@PathVariable int age)
如果是类上面的@RequestMapping("demoAnno") 也添加一个参数,和方法上的获取使用是一样的
②@RequestParam也是通过把参数绑定到URL中,但是和@PathVariable有不同,形式为http://localhost:port/path?参数名=参数
@RestController @RequestMapping("demoAnno") public class testController { @RequestMapping(value = "/hello", method = RequestMethod.GET) public String hello(@RequestParam(value = "name", required = false, defaultValue = "null") String name) { return "我是" + name ; } }
注意:@RequestParam中required是"是否必填", "false" 可以不带此参数, "defaultValue" 可以赋一个默认值.如果选择required = false ,URL中不带name=tom参数,不会报错. 如果写成@RequestParam(value = "name") 这样的形式,则不带name=tom参数就会报错.
③@RequestBody可以将请求体中的JSON字符串绑定到相应的bean上,也可以将其分别绑定到对应的字符串上。
@RestController @RequestMapping("demoAnno") public class testController { @RequestMapping(value = "/hello", method = RequestMethod.POST) public String hello(@RequestBody RequestOrderVo requestOrderVo) { return "我是" + requestOrderVo.getName +"年龄 "+requestOrderVo.getAge; } }
本文来自博客园,作者:huhy,转载请注明原文链接:https://www.cnblogs.com/huhongy/p/7299281.html