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

关于 spring的内部bean
首先多谢各位帮助 

<bean id="userService" class="com.test.bean.UserServiceBean">
  <property name="userDAO" ref="userDAO"/>
</bean>

 <bean id="userService" class="com.test.bean.UserServiceBean">
  <property name="userDAO">
  <bean class="com.test.dao.impl.UserDAOImpl"></bean>
  </property>
 </bean>

其中 

public class UserDAOImpl implements UserDAO {

private HibernateTemplate hibernateTemplate;

public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
this.hibernateTemplate = hibernateTemplate;
}

 
public List findUserList() {
System.out.println(hibernateTemplate);
List list = null;
try{
list = hibernateTemplate.find("From UserDTO");
}catch(Exception e){
e.printStackTrace();
}finally{
hibernateTemplate.clear();
}
return list;
}
现在想问的是 为什么 第一种bean的写法可以正确获取 hibernateTemplate
而第二种bean的写法获取的hibernateTemplate为null

不解啊。。

多谢了

------解决方案--------------------
因为sessionFactory被你注入到ref="userDAO"的userDAO这个bean里的。所以必须要ref你声明的bean,也就是配置文件里面的userDAO
------解决方案--------------------
探讨

多谢楼上回答,不过,class bean ,貌似也是指向那个实现类的,为什么?