假设我有一个注册接口,controller写了一个@RequestMapping("/register")之后,有这些东西:
①验证验证码和重复密码是否正确
②到数据库查找用户名和邮箱是不是已经存在
③上面验证都没问题,向数据库插入一条数据
④向用户邮箱发送一封激活邮件
⑤返回注册成功给用户
这些都在哪里写啊?
假设我有一个注册接口,controller写了一个@RequestMapping("/register")之后,有这些东西:
①验证验证码和重复密码是否正确
②到数据库查找用户名和邮箱是不是已经存在
③上面验证都没问题,向数据库插入一条数据
④向用户邮箱发送一封激活邮件
⑤返回注册成功给用户
这些都在哪里写啊?
controller层是做数据格式处理的,打个比方用户传了一个pageSize,但是有可能传null,这个时候你可以再进行一次转换成默认的10;然后调用service的方法,返回结果给到前端。
servicer就是和数据库打交道的,校验、插入,事务
你提及的5点中,1、2、3都是service去写逻辑。4是属于另外的一个服务。你可以在service中进行 @Autowire引入相应的服务,然后service去调用。
第5点就是controller的工作
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
业务逻辑要在service中实现,而control负责把service层返回的数据加工转换为方便jsp或者其他模板容易渲染的格式,传递给view层,或者按照前端要求的格式转换为json传递给前端(ajax方式)。
除了5要在controller写之外,其他都应该写在service层。当然,狭隘的业务逻辑只是3和4。1/2属于数据验证,数据验证和业务逻辑有一定关系,如果按照狭义的业务逻辑理解,1/2也可以放在controller中。