daoImpl:

private SessionFactory sessionFactory;

@Resource(name = "sessionFactory")
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
applicationContext.xml: <context:annotation-config/>
<context:component-scan base-package="net.alice"></context:component-scan>
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
    <property name="driverClassName" value="org.hibernate.dialect.MySQLDialect"/>
    <property name="url" value="jdbc:mysql://localhost:3306/arisu"/>
    <property name="username" value="root"/>
    <property name="password" value="komoe"/>
   </bean> <bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource"/>
    <property name="annotatedClasses">
      <list>
        <value>net.alice.model.User</value>
      </list>
    </property>
    <property name="hibernateProperties">
     <props>
     <prop key="dialect">org.hibernate.dialect.MySQLDialect</prop>
     <prop key="show_sql">true</prop>
     <prop key="format_sql">true</prop>
     <prop key="hbm2ddl">update</prop>
     <prop key="current_session_context_class">thread</prop>
     </props>
    </property>
  </bean>
注入失败sessionFactory为null

解决方案 »

  1.   

    去掉<prop key="current_session_context_class">thread</prop>
      

  2.   

    web.xml里面有没对spring容器进行监听?
    <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    这个配置了吗?
      

  3.   

    用的是单元测试,不是这问题
    我用myeclipse生成sessionFactory可以正常运行,改用spring托管就不行了
      

  4.   

    @Resource
    public void setDaoSessionFactory(SessionFactory sessionFactory) {
    super.setSessionFactory(sessionFactory);
    }