【发布时间】:2012-05-12 20:32:16
【问题描述】:
我有一个账号注册页面,我有以下服务类:
- 用户服务
- 角色服务
- 电子邮件服务
所以当用户注册时,我必须:
- 在数据库中创建用户
- 将用户添加到特定角色
- 向用户发送电子邮件
我用的是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 会做很多我可能不想做的事情,因为我是以批量方式做的(这只是我想到的,也许是它边缘案例?)
【问题讨论】:
标签: java spring spring-mvc soa