Controller 层逻辑
MVC架构下,我们的web工程结构会分为三层,自下而上是dao层,service层和controller层。controller层为控制层,主要处理外部请求,调用service层。
一般情况下,controller层不应该包含业务逻辑,controller的功能应该有以下五点:
⑴、接收请求并解析参数
⑵、业务逻辑执行成功做出响应
⑶、异常处理
⑷、转换业务对象
⑸、调用 Service 接口
基于 Spring Boot + MyBatis Plus + Vue & Element 实现的后台管理系统 + 用户小程序,支持 RBAC 动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
项目地址:https://github.com/YunaiV/ruoyi-vue-pro
视频教程:https://doc.iocoder.cn/video/
普通写法
@RestController
public class TestController {
@Autowired
private UserService userService;
@PostMapping("/test")
public Result service(@Validated @RequesBody UserRequestBo requestBo) throws Exception {
Result result = new Result();
// 参数校验
if (StringUtils.isNotEmpty(requestBo.getId())
|| StringUtils.isNotEmpty(requestBo.getType())
|| StringUtils.isNotEmpty(requestBo.getName())
|| StringUtils.isNotEmpty(requestBo.getAge())) {
throw new Exception("必输项校验失败");
} else {
// 调用service更新user,更新可能抛出异常,要捕获
try {
int count = 0;
User user = userService.queryUser(requestBo.getId());
if (ObjectUtils.isEmpty(user