💖Day21-SpringBoot整合Web开发-返回JSON数据💖
📢默认实现📢
👉JSON是目前主流的前后端数据传输方式,SpringMVC中使用消息转换器HttpMessageConverter对JSON的转换提供了很好的支持,在SpringBoot中更进一步,对相关配置做了进一步的简化。默认情况下,当开发者新创建一个SpringBoot项目后,添加web依赖,代码如下:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
👉这个依赖中默认加入了Jackson-databind作为JSON处理器,此时不需要添加额外的JSON处理器就能返回一段JSON了。创建一个Book实体类:
public class Book{
private String name;
private String author;
@JsonIgonre
private Float price;
@JsonFormat(pattern="yyyy-MM-dd")
private Date publicationDate;
//省略getter/setter
}
👉然后创建BookController,返回Book对象即可:
@Controller
public class BookController{
@GetMapping("/book")
@ResponseBody
public Book book(){
Book book = new Book();
book.setAuthor("zhangsan");
book.setName("springboot");
book.setPrice(30f);
book.setPublicationDate(new Date());
return book;
}
}
👉如果需要频繁地使用@ResponseBody注解,那么可以采用@RestController组合注解代替@Controller和@ResponseBody,代码如下:
@RestController
public class BookController{
@GetMapping("/book")
public Book book(){
Book book = new Book();
book.setAuthor("zhangsan");
book.setName("springboot");
book.setPrice(30f);
book.setPublicationDate(new Date());
return book;
}
}
👉在浏览器输入http://localhost:8080/book,即可看到返回了JSON数据
👉这是SpringBoot自带的处理方式,如果采用这种方式,那么对于字段忽略、日期格式化等常见需求都可以通过注解来解决。
👉这是通过spring中默认提供的MappingJackson2HttpMessageconverter 来实现的,当然开发者也可以根据实际需求自定义JSON转换器。