日期:2014-05-17  浏览次数:20738 次

使用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配置文件
<bean id="LoginAction" class="com.action.LoginAction" scope="prototype">
<property name="service" ref="LoginService"></property>

</bean>

<bean id="LoginService" class="com.service.impl.LoginServiceImpl">
<property name="dao" ref="UserDao"></property>

</bean>
 
  <bean id ="UserDao" class="com.dao.impl.UserDaoImpl" >
  <property name="sessionFactory" ref="sessionFactory"></property>
  </bean>




//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<User> list =this.getHibernateTemplate().find(hql,s);

return list.size();
}

}

------解决方案--------------------
     <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">
         <constructor-arg ref="myDataSource"></constructor-arg>
     </bean>
    
     <bean id="aDao" class="com.defonds.jdbc.test.dao.ADaoImpl">
         <property name="jdbcTemplate">
             <ref bean="jdbcTemplate"/>
         </property>
     </bean>
你这样试试
还有,你的 UserDao 里 setDao 何意?你不会 service 里没有 setDao 吧?
------解决方案--------------------
看看启动或运行过程中的日志是否报错?

会不会是<proper