0

假设我有一个注册接口,controller写了一个@RequestMapping("/register")之后,有这些东西:
①验证验证码和重复密码是否正确
②到数据库查找用户名和邮箱是不是已经存在
③上面验证都没问题,向数据库插入一条数据
④向用户邮箱发送一封激活邮件
⑤返回注册成功给用户

这些都在哪里写啊?

2 个回答
0

已采纳

业务逻辑要在service中实现,而control负责把service层返回的数据加工转换为方便jsp或者其他模板容易渲染的格式,传递给view层,或者按照前端要求的格式转换为json传递给前端(ajax方式)。

除了5要在controller写之外,其他都应该写在service层。当然,狭隘的业务逻辑只是3和4。1/2属于数据验证,数据验证和业务逻辑有一定关系,如果按照狭义的业务逻辑理解,1/2也可以放在controller中。

0

controller层是做数据格式处理的,打个比方用户传了一个pageSize,但是有可能传null,这个时候你可以再进行一次转换成默认的10;然后调用service的方法,返回结果给到前端。

servicer就是和数据库打交道的,校验、插入,事务

你提及的5点中,1、2、3都是service去写逻辑。4是属于另外的一个服务。你可以在service中进行 @Autowire引入相应的服务,然后service去调用。

第5点就是controller的工作

撰写答案

推广链接