2017-05-10 12 views
0

나는 많은 게시물을 온라인과 함께 읽었지만 EJB를 주입하기 위해 어떤 주석을 사용해야할지 아직 명확하지 않다. 사용하는 경우EJB를 주입하는 데 사용할 수있는 방법은 무엇입니까?

는 사람이 안내 주실 래요 (장점과 단점 그리고 아마도)는 EJB를 주입하는 주석 :

1) @EJB
2) @Resource
3) @Inject

이것은 기본적인 질문 일 수 있습니다. 답변을 찾았지만 아직 명확하지 않습니다.

+0

@Resource는 Spring에서도 사용됩니다. 나는 EJB 대신에 POJO를 사용하기로 결정했다면 여전히 적용될 것이라고 생각한다. – duffymo

답변

4

어디에도 EJB를 삽입하기 위해 @Resource을 사용할 수있는 곳을 본 적이 없습니다. 일부 서버에서는 일 수도 있고 일 수도 있지만 이식 가능성은 낮습니다.

@EJB@Inject의 질문은 더 복잡합니다.

CDI 및 @Inject이 Java EE 6 사양에 추가되었습니다. 거기에 @IEject EJB를 CDI 빈에 넣을 수는 있었지만, 너무 많은 다른 곳 (있는 경우)에는 넣을 수 없었다.

Java EE 7 사양은 거의 모든 장소에서 @Inject 또는 @EJB을 서로 바꿔서 사용할 수있는 지점까지이를 통일했습니다. 본질적으로 EJB 사양 자체, 서블릿 사양, JAX-WS, JAX-RS 등과 같은 모든 "하위"사양은 뿐만 아니라 @Inject의 사용을 지원하도록 업데이트되어야했습니다. 그러나 @EJB 주석에서 사용할 수있는 속성을 지정해야하는 경우 @Inject에서 사용할 수 없습니다.

따라서 Java EE 7 호환 환경에서 실행 중이며 @EJB 속성이 필요하지 않은 경우 을 사용하면 어디에서나 @Inject을 자유롭게 사용할 수 있습니다.