2012-04-26 101 views
0

我的java项目与春季和休眠,无法获得sessionFactory.it的所有时间,当我使用它。配置:无法获得sessionFactory

<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); 
} 
+0

您认为sessionFactory在哪里以及如何设置/初始化?它不是,应该是。 – NimChimpsky 2012-04-26 14:26:02

回答

2

你在main方法实际上并没有使用Spring注射试验。您需要加载applicationContext.xml,然后从中获取test bean。

所以你可以做这样的事情在你的主:

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

Test test = (Test)context.getBean("test"); 
+0

问题解决了,谢谢 – Dumlys 2012-04-26 14:58:13

1

你需要从Spring上下文测试对象为好。加载你的配置xml并创建上下文,并从上下文中获取对象。

Test test = (Test) context.getBean("test");