spring中的sessionFactory

为什么在spring中介绍文档中bean的定义都是这样写的:

<bean id="mapper" 
          class="com.whatever.dataaccess.mapper.hibernate.MapperImpl">
        <property name="sessionFactory" ref="hibSessionFactory"/>
    </bean>

 

需要注入sessionFactory

而项目中,只是定义一个bean?
<bean id="contentDAO"
  class="com.topsoft.wcms.content.domain.dao.ContentDAOImpl" />

 

而没有<property name="sessionFactory" ref="hibSessionFactory"/>

 

为什么?
关键在于项目上的一个关键属性:default-autowire="byName",自动按名称装配。


来看看这个自动装配的解释:

  根据属性名自动装配。此选项将检查容器并根据名字查找与属性完全一致的bean,并将其与属性自动装配。例如,在bean定义中将autowire设置为by name,而该bean包含master属性(同时提供setMaster(..)方法),Spring就会查找名为master的bean定义,并用它来装配给master属性。

 

在spring配置文件中都会有一个id为sessionFactory的bean,spring会将这个注入过去,所以不用在写那个属性。

你可能感兴趣的:(DAO,spring,bean,Hibernate)