我有一个帐户注册页面,并且我有以下服务类:
- 用户服务
- 角色服务
- 电子邮件服务
所以当用户注册时,我必须:
- 在数据库中创建一个用户
- 将用户添加到特定角色
- 给用户发电子邮件
我使用的是spring MVC,所以这必须在注册方法中完成。
现在,我的问题是,我应该从 userService 的 register 方法中注入/使用其他服务吗?
userService.register(....)
public class UserServiceImpl ... {
public void register(....) {
save(user);
roleService.associateTo(....);
emailService.sendRegistrationEmail(...);
}
}
或者
这是否使事情过于耦合,我应该在控制器方法中分别进行这些调用,例如:
public ModelAndView register(..., HttpServletRequest request, ...) {
..
userService.register(user);
roleService.associateTo(...);
emailService.sendRegistrationEmail(...);
}
我有点倾向于第二种方法。假设我想以批量方式创建或注册用户,调用 register 会做很多我可能不想做的事情,因为我是以批量方式做的(这只是我想到的,也许是它边缘案例?)