지금까지는 거의 인터페이스가없는 EJB로 작업하고 @Local 주석이 필요한지 약간만 이해했습니다.EJB 3.1. @Local 주석이 필요합니까?
public interface MyBeanIntf { void doStuff(); }
@Stateless
public class MyBean implements MyBeanIntf { public void doStuff(){ } }
MyBeanIntf
이 @Local
으로 표시해야이 예를 생각해?
@Named
@SessionScoped
public class TestController implements Serializable {
// injection works perfectly, even when MyBeanIntf is not marked as @Local
@Inject
private MyBeanIntf myBean;
// or even like this:
// @EJB
// private MyBeanIntf myBean;
}
은 이제 더 복잡 만들어 보자 : 나는 @Local
로 주석을하지 않는 경우에도, 나는 아직도 제대로 UI 컨트롤러에 주입하는을 DI를 사용할 수 있기 때문에 나는 그에서 어떤 혜택을 볼 수 없습니다 :
public interface MyBeanIntf { void doStuff(); }
public class MySuperBean implements MyBeanIntf { public void doStuff() { } }
@Stateless
public class MyBean extends MySuperBean { }
이제 유효한 Local EJB
콩 간주 MyBean
있습니까? 간접적으로 인터페이스를 구현하기 때문에 몇 가지 의구심이 있습니다.
답변 해 주셔서 감사합니다. 사양에 대한 링크에 관해서는, 나는 여전히 몇 가지 의구심이 있습니다. 명시 적으로 세션 bean 인 superclasses에 대해 설명합니다. 그러나'@ Stateless' 또는'@ Stateful' 주석이없는 추상 클래스 일 경우 어떻게해야할까요? – jFrenetic
물론, 나는 그것에 대해 100 % 확신 할 수는 없지만 편집 된 게시물을 살펴보십시오. 아마도 도움이 될 것입니다. –
강조 해 주셔서 감사합니다. 나는 그 부분을 나 자신으로 읽었지만 어떻게 든 그것을 놓쳤다. – jFrenetic