0

spring と hibernate を使用する私の Java プロジェクトは、sessionFactory を取得できません。使用するときは常に null です。構成:

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.Oracle9Dialect
            </prop>
        </props>
    </property>
</bean>

<bean id="test" class="test.Test">
    <property name="sessionFactory" ref="sessionFactory"></property>
</bean>`

Test.java のメイン コードは

        private SessionFactory sessionFactory;

    public void setSessionFactory(SessionFactory sessionFactory) {
        this.sessionFactory = sessionFactory;
    }
    public SessionFactory getSessionFacoty(){
        return this.sessionFactory;
    }
        public static void main(String[] args) {
    // TODO Auto-generated method stub
    Test test = new Test();
    System.out.println(test.sessionFactory);
}
4

2 に答える 2

2

このメソッドのテストでは、main実際には注入にSpringを使用していません。ロードして、そこからBeanをapplicationContext.xml取得する必要があります。test

したがって、メインで次のようなことを行うことができます。

ApplicationContext context =
new ClassPathXmlApplicationContext(new String[] {"applicationContext.xml"});

Test test = (Test)context.getBean("test");
于 2012-04-26T14:27:31.973 に答える
1

春のコンテキストからも Test オブジェクトを取得する必要があります。config xml をロードしてコンテキストを作成し、コンテキストからオブジェクトを取得します

例えば。

Test test = (Test) context.getBean("test");
于 2012-04-26T14:29:12.830 に答える