建议的替代方法是滥用UserDetailServiceImpl进行非用户相关的数据库查找?

时间:2010-08-24 16:35:02

标签: spring spring-mvc model-view-controller

在我正在使用的project中,有一个UserDetailServiceImpl类,它执行所有与用户相关的数据库查找。

问题是,我已经养成了在那里进行非用户相关数据库查找的坏习惯,并使用UserDetailServiceImpl类作为默认查找服务,以避免直接在控制器操作方法中进行数据库查找。这样做的好处是我不必为每个模型创建单独的查找服务 - 这看起来相当愚蠢和冗余。但是,我是否应该考虑采用更标准的数据库查找方法来避免激怒Spring神?

1 个答案:

答案 0 :(得分:1)

我不喜欢只使用服务来包装数据库查找,最终会得到控制器中的所有业务逻辑。我会组织我的服务,因此每种类型的用户都会有一个。因此,如果我有客户和数据输入人员和管理员,我会创建一个customerService,一个dataEntryService和一个adminService。每项服务都会公开那种客户需要的方法。没有业务逻辑应该在控制器中,它严格关注从URL和请求和会话获取输入,在某些服务上调用方法(传入这些输入),然后获取服务调用的结果并将其放在何处页面可以显示它。