这是spring配置文件中截取的一段:<bean id="dataSource"
class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName"
value="oracle.jdbc.driver.OracleDriver">
</property>
<property name="url"
value="jdbc:oracle:thin:@localhost:1522:xe">
</property>
<property name="username" value="yjr"></property>
<property name="password" value="yjr"></property>
</bean>
<bean id="guestbookDao"
class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate"
abstract="false" lazy-init="default" autowire="default"
dependency-check="default">
<property name="sessionFactory">
<ref bean="sessionFactory" />
</property>
</bean>
-----------------------------------------------------------------------请问 bean id="guestbookDao" 中配置的类class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate" 中并没有sessionFactory这个属性名啊,为什么能这样写呢???property name 可以是任意值么,
它和<ref bean="sessionFactory" /> 中的bean=的sessionFactory 有什么关系????

解决方案 »

  1.   

    <bean id="guestbookDao"
    class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate"
    abstract="false" lazy-init="default" autowire="default"
    dependency-check="default">
    <property name="sessionFactory">
    <ref bean="sessionFactory" />
    </property>
    </bean>表明 guestbookDao 这里有个 sessionFactory
    这个sessionFactory 是注入的 
      

  2.   

    可是我查看类class="com.v512.guestbook.dao.hibernate.GuestbookDaoHibernate" 中没有sessionFactory这个属性啊,我搜索了整个文件,没有“sessionFactory” 的字符串
      

  3.   

    这是bean id="guestbookDao"类的源代码:package com.v512.guestbook.dao.hibernate;import java.util.List;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.v512.guestbook.dao.GuestbookDao;
    import com.v512.guestbook.model.Guestbook;public class GuestbookDaoHibernate extends HibernateDaoSupport implements GuestbookDao { public void delete(Long id) {
    this.getHibernateTemplate().delete(getGuestbook(id));
    } public Guestbook getGuestbook(Long id) {
    return (Guestbook)getHibernateTemplate().get(com.v512.guestbook.model.Guestbook.class, id);
    } public List getGuestbooks() {
    return getHibernateTemplate().find("from Guestbook order by id desc");
    } public void save(Guestbook g) {
    getHibernateTemplate().saveOrUpdate(g); }}-------------------------------
    里面没有sessionFactory属性啊,怎么要注入它呢
      

  4.   

    在HibernateDaoSupport 里面有这个属性