2014-02-21 4 views
0

최근 어딘가에 @Inject 주석이 있다는 것을 알았습니다. 클래스를 삽입 할 수 있습니다.@ 삽입 주석과 함께 사용할 주입을 제공하는 가장 간단한 방법은 무엇입니까?

어떻게 공급자 측에서 사용할 수 있습니까? 가정하자

나는

class MyClass1 { 

    @Inject 
    MyType2 variable; 

} 

이 어떻게 작동하도록 쓸 수 있도록하려면? 절대적으로 필요한 것은 무엇입니까?

MyType2이 추상 클래스의 인터페이스 일 경우 어떻게해야합니까?

+1

스프링, Guice 또는 CDI와 같은 의존성 삽입 프레임 워크가 필요합니다. –

+0

그렇다면'@ Inject'가 메인 Java EE 라이브러리에 정의 된 이유는 무엇입니까? – Dims

+0

CDI는 Java EE의 핵심 부분이므로 –

답변

1

@Inject 주석은 JSR 330에 지정된 : 의존성 주입 자바 (링크 : JSR330) 다양한 응용 프로그램 서버에 웹 응용 프로그램의 웹 컨테이너에 사용

그것입니다.

종속성 주입은 실제로 사용될 때까지 변수에 대한 프록시 클래스를 제공합니다. 컨테이너는 관련 클래스를 삽입하고이를 사용할 수 있습니다. 컨테이너가 필요하기 때문에 클래스를 주입 지점으로 주입해야합니다.

당신이 구글 Guice을 확인할 수있는 Java SE 환경에서 의존성 삽입 (Dependency Injection)을 사용하려면

(링크 : Google Guice는)

"MyType2 추상 클래스의 인터페이스 어떤 경우에?"

추상 클래스를 인스턴스화 할 수 없기 때문에 실패 할 것입니다.

+0

'MyType2'는 일부 자손 및/또는 구현 자로 인스턴스화 될 수있었습니다 – Dims