浏览 1419 次
锁定老帖子 主题:请教一个Spring和DAO的问题。
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2008-01-31
于是最近猛啃了下Spring的书。现在项目新架构的框架出来了,我发现,现在多了一层service层。以前是用蒙面类(TableOperatorFacadeBean)来调用DAO接口的实现类,现在变成通过调用service接口,然后在这个接口的实现类中去调用DAO的实现类。。。 限于初学知识不够,始终没弄明白这层是为什么出现,以及它都能做写什么。。。 请哪位指点一下。 附上部分代码,大概问题没描述清楚。 public class LoginAction extends Action{ IUserInfoService userInfoService; public IUserInfoService getUserInfoService() { return userInfoService; } public void setUserInfoService(IUserInfoService userInfoService) { this.userInfoService = userInfoService; } LoginAction中对数据层的操作现在是: resUserInfo = userInfoService.getLoginInfo(userInfo); UserInfoServiceImpl: public class UserInfoServiceImpl implements IUserInfoService { IUserInfoDAO userinfoDao; public IUserInfoDAO getUserinfoDao() { return userinfoDao; } public void setUserinfoDao(IUserInfoDAO userinfoDao) { this.userinfoDao = userinfoDao; } public UserInfoBean getLoginInfo(UserInfoBean userInfo) { List list=null; try { list =userinfoDao.getUserInfo(userInfo); } catch (Exception e) { logger.info("获取登录用户信息失败!",e); return null; } UserInfoDAOImpl : public class UserInfoDAOImpl extends SqlMapClientDaoSupport implements IUserInfoDAO { public List getUserInfo(UserInfoBean userInfo) { userInfo.setPassword(MsgDigest.getMD5(userInfo.getPassword())); List loginList = this.getSqlMapClientTemplate().queryForList(Const_daoimpl.USER_INFO,userInfo); return loginList; } 以前就是在ACTION中,直接: TableOperatorFacadeBean tofb = new TableOperatorFacadeBean(); resUserInfo = tofb.getLoginInfo(userInfo); 我的理解是,使用依赖注入,就是为了减少ACTION对操作操作数据库部分的依赖。使用DAO也是使ACTION不直接调用对数据库调用的代码。其实一样是减少了依赖。那么这里是不是直接依赖注入DAO的接口就可以了?何必还要多出这个SERVICE层? 不知道自己的想法和理解对不对,希望熟悉这方面的人能多指点一下。谢谢! 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |