不理解service层和controller层都写哪些代码

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

这些都在哪里写啊?

阅读 19.5k
2 个回答

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

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

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

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

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

第5点就是controller的工作

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题