日期:2014-05-19  浏览次数:20614 次

Spring3 annotation注入SessionFactory失败
daoImpl:
Java code
    
private SessionFactory sessionFactory;
    
    @Resource(name = "sessionFactory")
    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }



applicationContext.xml:
Java code

    <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

------解决方案--------------------
去掉<prop key="current_session_context_class">thread</prop>
------解决方案--------------------
web.xml里面有没对spring容器进行监听?
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
这个配置了吗?
------解决方案--------------------
@Resource
public void setDaoSessionFactory(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}