JavaSpringBoot框架注解的使⽤
@Controller
public class Example {
/**
* @RequestMapping 注解
* 提供“路由”信息。它告诉Spring,任何带有 / 路径的HTTP请求都应该映射到 home ⽅法。
* @RestController 注释告诉Spring将结果字符串直接渲染回调⽤者。
*/
@RequestMapping("/")
public String home() {
return "Hello World!";
}
@GetMapping("/prints")
// @ResponseBody 表明:该⽅法返回的是数据
public @ResponseBody prints(String name) {
return name;
}
// void:表明该⽅法⽆返回值
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}springboot框架是干嘛的
@Controller注解:
表明该类所有的⽅法返回页⾯路径,但是在⽅法上加了@ResponseBody后,该⽅法返回的是数据。
如果我们还想返回界⾯可以使⽤ ModelAndView ⽅法
@RequestMapping("/")
public ModelAndView index(){
ModelAndView model = new ModelAndView("xxx/xxx"); //界⾯路径
return model;
}
@PathVariable 获取url中的数据:
如果我们需要获取Url=localhost:8080/hello/id中的id值,实现代码如下:
@RestController
public class HelloController {
@RequestMapping(value="/hello/{id}", method = RequestMethod.GET)
public String sayHello(@PathVariable("id") Integer id){
return "id:" + id;
}
}
如果我们需要在url有多个参数需要获取,实现代码如下:
@RestController
public class HelloController {
@RequestMapping(value="/hello/{id}/{name}", method = RequestMethod.GET)
public String sayHello(@PathVariable("id") Integer id, @PathVariable("name") String name){
return "id:" + id + " name:" + name;
}
}
@RequestParam 获取请求参数的值:
@RequestParam ⽤来处理ContentType: 为 application/x-www-form-urlencoded编码的内容,不管⽤GET、POST⽅式提交都⾏。如果我们需要获取id参数,地址:localhost:8080/hello?id=1000,实现代码如下:
@RestController
public class HelloController {
@RequestMapping(value="/hello", method = RequestMethod.GET)
public String sayHello(@RequestParam("id") Integer id){
return "id:" + id;
}
}
地址:localhost:8080/hello?id 如果不输⼊id的具体值,此时返回的结果为null。
地址:localhost:8080/hello 如果不输⼊id参数,则会报错。
@RequestParam 注解给我们提供了这种解决⽅案,即允许⽤户不输⼊id时,使⽤默认值,实现代码如下:
@RestController
public class HelloController {
@RequestMapping(value="/hello", method = RequestMethod.GET)
//required=false 表⽰url中可以不穿⼊id参数,此时就使⽤默认参数
public String sayHello(@RequestParam(value = "id", required = false, defaultValue = "1") Integer id){
return "id:" + id;
}
}
@RequestBody注解:
该注解常⽤来处理Content-Type: 不是application/x-www-form-urlencoded编码的内容,例如application/json, application/xml等;
@RequestBody 接收的是⼀个Json对象的字符串,⽽不是⼀个Json对象。在ajax请求往往传的都是Json对象,⽤ JSON.stringify(data)的⽅式就能将对象变成字符串。
@GetMapping、@PostMapping 组合注解:
@GetMapping = @RequestMapping(method = RequestMethod.GET)的缩写,是⼀个组合注解
@PostMapping = @RequestMapping(method = RequestMethod.POST)的缩写,是⼀个组合注解
Spring4.3 中引进了{@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping},来帮助简化常⽤的HTTP⽅法的映射,并更好地表达被注解⽅法的语义。
注意:
1.接收时间的参数前⾯要加上@DateTimeFormat(pattern=”“)注解
2.同时对于LocalDateTime类型,注解⾥⾯的时分秒不能省略,前端也必须传进来,传的时候必须是双位数!如果没有,就要⽤00:00:00表⽰
3.LocalDate 类型的注解也可以加上时分秒,但是年⽉⽇后⾯的不会被接收和显⽰。
@ApiModelProperty(value = "创建时间", example = "2019-10-18")
@DataTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime create_time;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论