2017-03-23 2 views
0

@Inject 주석을 사용하여 Java에서 종속성 삽입을 시도하고이 link의 자습서를 따라했습니다. 튜토리얼에 따르면 나는 다음을 창조했다.종속성 주입

import javax.inject.Inject; 

public class GreetingBean { 


@Inject private static HelloBean helloBean; 

// @Inject 
// public GreetingBean(HelloBean helloBean){ 
//  this.helloBean = helloBean; 
// } 

public static void sayGreeting(){ 
    helloBean.sayHello(); 
} 

public static void main(String[] args) { 
    GreetingBean.sayGreeting(); 
} 
} 

HelloBean 클래스는 다음과 같습니다.

public class HelloBean { 

public void sayHello(){ 
    System.out.println("Hello user"); 
} 
} 

실행시 helloBean이 초기화되지 않았으므로 널 포인터 예외가 발생했습니다. 튜토리얼에서 이해 한 바에 따르면 @Inject는이를 처리해야합니다. 나는이 일을하기 위해 더 많은 것을해야한다고 생각하지만 어떤 참고 문헌도 찾을 수 없었다. 누군가이 문제에서 나를 도울 수 있습니까?

+4

앱은 보통''main''을 사용하여 실행하고 있습니다. 당신은 의존성 주입을 돌봐주는 CDI 컨테이너가 필요합니다 ... – f1sh

+3

이 기사는 Java EE에 관한 기사이며 독립 실행 형 프로그램을 작성하고 있습니다. 그것은 2 가지 주제입니다. – 7663233

답변

1

표준 Java 응용 프로그램에서 CDI를 사용하려면 here을보십시오. (이것은 참조 용 CDI 구현 인 Weld를 사용하고 있습니다.)