【java_web】spring boot 中MVC的执行过程

慕课参考教程

https://www.imooc.com/video/912
https://www.imooc.com/learn/47

MVC的工作流程
【java_web】spring boot 中MVC的执行过程

  • 控制器控制着每个请求下,使用什么模型生成怎样的视图。
  • 以下讨论为使用Spring boot 的RESTful API的做法, 视图可以看做是前台的目标JSON串。

针对下面代的Controller代码
步骤一:请求域名/login后就会被服务器拦截,此时userService已经被spring注入,等待着请求进来。
步骤二:该请求的body内有JSON串,是前后台约定好的一个数据结构LoginRequsetInfo。该数据结构就是一个model,也就是一个Java实体类,可以被Spring序列和反序列成json。
步骤三:Controller内触发用户的目的JSON串构造,也就产生了LoginInfo这个model,所以控制器控制model。
步骤四:Controller是一个方法,其返回值可以自定义,可以直接返回一个LoginInfo给前台,但是前台想要获取更详细的信息,传统RESTful的API返回的JSON串是不带状态码的,这个时候可以自定义一个返回实体类StatusJson,写入与data同级的status和msg字段并返回。可见Controller可以控制前台显示也就控制View。

@RestController
public class LoginController {

    @Autowired
    private UserService userService;

    @PostMapping(value = "/login")
    @ApiOperation(value = "用户登录", response = LoginInfo.class)
    private StatusJson userLogin(@RequestBody LoginRequestInfo loginRequestInfo) {
       LoginInfo loginInfo =  userService.userLogin(loginRequestInfo.getUserName(), loginRequestInfo.getUserPwd());
        return new StatusJson(loginInfo);
    }

}