请教一个Spring和DAO的问题。

最近项目在整架构。要把以前的struts+ibatis+dao.换成现在的struts+ibatis+dao+spring.

于是最近猛啃了下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层?
不知道自己的想法和理解对不对,希望熟悉这方面的人能多指点一下。谢谢!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值