2012-07-10 3 views
0

최근에 기존 서버를 시작할 때 문제가 발생했습니다. 그것은 필드 ABCManager 중 하나가 봄 콩 공장에 의해 autowired되지 않은 것 같습니다. 이것은 "context : anotation-config"를 설정 파일에 추가했습니다. 코드 변경 버전을 확인한 후 ABCManager에는 private 생성자 메서드 만 있습니다 (getInstance 메서드가 있기 전에). 이게 중요합니까? 스프링이 개인용 생성자를 사용하여 인스턴스를 가져 오거나 이것이 NPE를 얻은 이유는 무엇입니까? 그렇지 않은 경우 무엇을 확인해야합니까?왜 내 @ 자동으로 작동하지 않습니다

+0

애플리케이션 구성 및 예외를 추가하고 질문에 게시 할 수 있습니까? – Xaerxess

+0

마침내이 문제를 디버깅 한 후에 어떤 일이 벌어지는 지 알게되었습니다. 여전히 구성 문제이지만 일부 종속성 bean은 * .xml에서 구성되지 않습니다. – Sarstime

답변

0

주석을 달았습니까? 클래스가되어이로 @Component 또는 @Service 또는

+0

아니, 그게 문제가 아니야 – Sarstime

0

@Repository 인스턴스를 얻기 위해 정적 메소드를 사용하여 주석이되어야하며, 봄은 기본적으로 그것을 알고하지 않습니다. 빈 감속에서 정적 메서드를 지정해야합니다.

<bean id="exampleBean" class="examples.ExampleBean2" factory-method="createInstance"/> 

factory 메소드는이 bean을 인스턴스화하는 데 사용되는 정적 메소드입니다.

+0

아니, 내가 코드를 디버깅하여 공공 생성자를 제공하지 않았다는 것을 알 수있다. 스프링은 여전히 ​​나를 위해 인스턴스를 생성한다. 따라서 팩토리 메서드를 제공하지 않는다면 괜찮습니다. – Sarstime

관련 문제