SpringBoot 非常适合 Web 应用开发,我们可以使用它轻松地建立一个 Web 服务。在Spring Boot入门 里面,我们已经使用其实现一个非常简单的接口,输出了 Hello World!下面我们模拟真实的场景来学习 SpringBoot 应用开发。
1. 数据格式
在实际的项目场景中,前后分离几乎是所以项目的标配,全栈的时代的逐渐远去,后端负责业务逻辑处理,前端负责数据展示成了一种固定的开发模式。一般来说,在后端提供的数据接口中,可能会存在两种数据形式 Json 与 XML,具体会用到哪一种,往往会与公司的工程师文化相关。
1.1. Json 报文
对于 SpringBoot 来说 ,它默认会使用 Json 作为响应报文格式,我们用一个简单的例子做一下测试:
首先,我们创建一个 UserController 用于处理前端的 Web 请求。
@Controller
@RequestMapping("/sys/user")
public class UserController {
@RequestMapping("login")
@ResponseBody
public Map<String, String> login() {
Map<String, String> hashMap = new HashMap<>();
hashMap.put("msg", "登录成功");
return hashMap;
}
}
相信这个事例对于大多数使用过 SpringMVC 的人来说都不会陌生,定义一个简单的控制器及相当的映射,与通常返回 Url 的 Controller 不一样的是,我们这里使用了 @ResponseBody 注解,它表示此接口响应为纯数据,不带任何界面展示。请求对应的地址看到如下输出:
很明显,我们得到了想要的结果,一个标准格式的 Json 字符串,是不是非常的简单。
对于上面的代码来说,还可以做进一步的优化,由于所有的 Restful 接口都只是返回数据,所以我们可以直接在类级别上添加 @ResponseBody 注解。而大多数情况下,@Controller 与 @ResponseBody 又会一起使用,所以我们使用 @RestController 注解来替换掉它们,从而更加简洁地实现功能。
@RestController
@RequestMapping("/sys/user")
public class UserController {
@RequestMapping("login")
public Map<String, String> login() {
Map<String, String> hashMap =