2008-01-31
请教一个Spring和DAO的问题。
关键字: spring
最近项目在整架构。要把以前的struts+ibatis+dao.换成现在的struts+ibatis+dao+spring.
于是最近猛啃了下Spring的书。现在项目新架构的框架出来了,我发现,现在多了一层service层。以前是用蒙面类(TableOperatorFacadeBean)来调用DAO接口的实现类,现在变成通过调用service接口,然后在这个接口的实现类中去调用DAO的实现类。。。
限于初学知识不够,始终没弄明白这层是为什么出现,以及它都能做写什么。。。
请哪位指点一下。
附上部分代码,大概问题没描述清楚。
LoginAction中对数据层的操作现在是:
UserInfoServiceImpl:
UserInfoDAOImpl :
以前就是在ACTION中,直接:
我的理解是,使用依赖注入,就是为了减少ACTION对操作操作数据库部分的依赖。使用DAO也是使ACTION不直接调用对数据库调用的代码。其实一样是减少了依赖。那么这里是不是直接依赖注入DAO的接口就可以了?何必还要多出这个SERVICE层?
不知道自己的想法和理解对不对,希望熟悉这方面的人能多指点一下。谢谢!
于是最近猛啃了下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层?
不知道自己的想法和理解对不对,希望熟悉这方面的人能多指点一下。谢谢!
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 4090 次
- 性别:

- 来自: 武汉人在深圳

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
你满意你的团队吗?
mario 写道项目是自己的好,团队是别人的好。 孩子是自己的好,老婆是别人的 ...
-- by abx01 -
你满意你的团队吗?
项目是自己的好,团队是别人的好。
-- by mario -
你满意你的团队吗?
lordhong 写道我上面一个也是这样,什么都不懂,任务乱分配,项目失败N多, ...
-- by ericxu131 -
你满意你的团队吗?
怎么看到的都是有问题的团队? 没有谁觉得自己的团队很好,或者比较好的,出来说说自 ...
-- by dspiritcat -
你满意你的团队吗?
我们的团队,交流没有任何问题,就是有些交流的太多啦,呵呵!!!!!
-- by okjava






评论排行榜