java service注入失败,使用spring向service里面注入dao不成功。

作者在尝试使用Spring将DAO注入Service时遇到问题,service调用dao为null,尽管action调用service时正常。文章探讨了可能的原因,如命名规范冲突、配置错误等,并提供了修改建议,包括检查bean id和set方法的使用。
摘要由CSDN通过智能技术生成

使用spring向service里面注入dao不成功。求救啊!

本帖最后由 PaperStar 于 2013-12-26 19:29:20 编辑

页面调用action,action调用service,service调用dao

用Debug查看action调用service方法时service有值,但是service调用dao时,dao为null

折腾一下午了,死活找不到原因。我两个写的貌似一样啊,为什么一个成功,一个不成功呢?

程序也不报错,求大神指点啊!

set方法已加入,名称也都核对没问题

//spring配置文件

//service文件

private UserDao dao;

public void setDao(UserDao dao) {

this.dao = dao;

}

public boolean checkEmail(String s) {

int num = dao.checkEmail(s);

return num==0?true:false;

}

//dao文件

public class UserDaoImpl extends HibernateDaoSupport implements UserDao {

public int checkEmail(String s) {

String hql="frome User where email = ?";

List list =this.getHibernateTemplate().find(hql,s);

return list.size();

}

}

分享到:

更多

------解决方案--------------------

你这样试试

还有,你的 UserDao 里 setDao 何意?你不会 service 里没有 setDao 吧?

------解决方案--------------------

看看启动或运行过程中的日志是否报错?

会不会是没有配置真确导致Dao注入失败。注意这个名字sessionFactory是否和配置的一致。

------解决方案--------------------

造成这种原因主要你是命名不规范;

你的dao是:public class UserDaoImpl extends HibernateDaoSupport implements UserDao

但你的配置文件命名却是:

这是不合理的,这个bean id ="UserDao",意思是说你的UserDaoImpl类中,是通过setUserDao注入进来,而你的却是setDao,所以注入不进来。一般的 bean id ="xxx",这个xxx应该和你的类名一致,并且首字母小写,也就是userDaoImpl,然后service中:private UserDao userDaoImpl;

public void setUserDaoImpl(UserDao userDaoImpl) {

this.userDaoImpl = userDaoImpl;

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值