2010-01-15 3 views
3

저는 콩 주입에 대한 새로운 아이디어를 얻었으므로 천천히 말하십시오. :)봄 주입 빈 속성이 null입니다.

빈을 삽입하는 클래스가 있지만 속성에 액세스 할 때 속성이 null이고 null 포인터 예외가 발생합니다./프로젝트 TRUNK/전쟁 모듈 /에서 /project-TRUNK/war-module/src/main/webapp/WEB-INF/spring-config/spring-bean.xml

<bean id="linkCheck" 
    class="com.dogwatch.util.LinkCheck"> 
    <property name="linkDao" ref="jdbcLinkDao" /> 
</bean> 

에서

SRC/메인/웹 애플리케이션/WEB-INF/스프링 설정/스프링 dao.xml DAO를 콩이 좋은 것으로 알려진 몇몇 다른 클래스에서 작동합니다

<bean id="jdbcLinkDao" class="com.dogwatch.util.jdbcLinkDao"> 
    <property name="dataSource" ref="dataSource" /> 
    <property name="linkJdbcDataTypesSupport" ref="linkJdbcDataTypesSupport"/> 
</bean> 

.

동일한 DAO 빈을 사용하는 다른 클래스와 비교해 봤는데 차이점을 찾을 수 없습니다. 로드 - [주] [XmlBeanDefinitionReader] [XmlBeanDefinitionReader.java:323]

정보 [05,838 2010-01-15 01 : 10] 나는 빈을 참조 할

는 정의하기 URL 의 XML bean 정의 [파일 : war-module/src/main/webapp/WEB-INF/spring-config/spring-dao.xml] INFO [2010-01-15 01 : 10 : 05,858] [XmlBeanDefinitionReader] [XmlBeanDefinitionReader.java:323] - URL에서 XML bean 정의로드 [파일 : war-module/src/mai n/webapp/WEB-INF/spring-config/spring-bean.xml] 정보 [2010-01-15 01 : 10 : 06,597] [기본] [DefaultListableBeanFactory] [DefaultListableBeanFactory.java:414] - Pre - 콩을 정의하는 org.s[email protected]3c01d5a0 : 에서 싱글 톤을 인스턴스화한다. (snip) jdbcLinkDao, linkCheck (snip) businessLoggingAspect, org.springframework.beans.factory.config.PropertyPlaceholderConfigurer # 1]; 공장 계층의 루트

누구나 콩 주입 문제 해결 방법에 대한 제안 사항이 있습니까?

+0

오타가 처음 두 개의 답변으로 고정되었습니다. – wadesworld

+1

linkCheck 빈을 사용하는 코드는 어떻게 얻을 수 있습니까? 주입 되는가? Spring 컨텍스트에서 검색합니까? 나는 당신이 새로운 LinkCheck()를하고 있지 않다고 가정하고 있지만, Spring을 처음 사용하기 때문에, 그것은 합리적인 출발 질문입니다. – SteveD

+0

@Wade : 'spring-dao.xml'도 수정하십시오. 감사. 그리고 네, Stevendick에게 대답하십시오. –

답변

8

OP의 질문에서 내 의견을 넓히고 있습니다. 도움이 된 것 같습니다.

linkCheck 빈을 사용하는 코드는 어떻게 얻을 수 있습니까? 주입 되는가? Spring 컨텍스트에서 검색합니까? 나는 당신이 new LinkCheck()을하고 있지 않다고 가정하고 있지만, 봄에 처음 온 이래로 그것은 합리적인 시작 질문입니다.

스프링은 빈 생성을 제어하는 ​​경우에만 빈을 주입 할 수 있습니다. new MyClass()을 수행하면 스프링 컨테이너는 객체에 대해 알지 못하기 때문에 주입을 수행 할 수 없습니다.

+1

+1 웨이드의 차례. ;) –

1

'jdbcLinkDao'의 유형이 'jdbcLinkDao'이지만 설정기의 인수 유형이 LinkDAO 인 경우 잠재적 인 문제점이 있습니다.

  • 로그를 설정합니다 (! 'jdbcLinkDao은'아마 OK입니다 'LinkDAO'의 하위 유형입니다 ...하지만 클래스 이름을 FIX 경우)

    을 그게 문제가 아니라면 당신 제안

  • 아무런 표시가 없으면 LinkCheck.setLinkDAO()에 추적 인쇄를 추가하여 설정중인 값과 설정중인 값을 확인하십시오.

관련 문제