2012-04-26 3 views
0

봄과 최대 절전 모드를 사용하는 Java 프로젝트에서 사용할 때 sessionFactory.it의 null을 항상 가져올 수 없습니다. 구성은 :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의 주요 코드는 실제로 주입 스프링을 사용하지 않는 main 방법

 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

답변

2

귀하의 테스트입니다. applicationContext.xml을로드 한 다음 test 빈을 가져와야합니다.

그래서 당신은 당신의 주에서 이런 일을 할 수있는 :

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

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

문제가 해결되었습니다. 감사합니다. – Dumlys

1

당신은뿐만 아니라 봄 컨텍스트에서 테스트 오브젝트를 얻을 필요가있다. config xml을로드하고 컨텍스트를 만들고 컨텍스트에서 객체를 가져옵니다.

예 :

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