JavaEE 6 튜토리얼을 읽었으며 SessionBean과 CDI 섹션을 읽는 동안 몇 가지 의문점이있었습니다.SessionBeans와 CDI와 POJO 클래스
1) 이해를 돕기 위해 @EJB
주석은 SessionBean을 주입하여 종속성 삽입 패턴을 사용합니다. 나는이 패턴이 누가 어떤 물건을 만들지에 대한 책임감을 바꾸는 것을 목표로한다는 것을 이해한다. 따라서, 의존성을 소유하고있는 특정 클래스 대신에, 생성자에서 의존성을받습니다. 그러나 @EJB
주석은 종속성을 주입하지 않는 문제를 어떻게 완화합니까? @Inject
주석에도 동일하게 적용됩니다.
2) 날짜를 여러 형식 (yyyy-MM-dd, dd-MM-yyyy 등)으로 포맷하는 유틸리티 클래스 (정적 메서드 만 포함)가 있습니다. 이러한 메소드에 Stateless Session Bean을 사용하는 것이 더 좋습니까? 아니면 Utility 클래스를 유지해야합니까? 이를 위해 EJB를 사용하는 경우 @Inject
주석을 사용하여 Bean을 사용하거나 Bean을 사용하는 것의 차이점은 무엇입니까?
3) Dependency Injection을 사용하는 경우 Service Locator 또는 Factory 패턴을 사용하는 것이 합리적입니까? (서비스 위치 정보가 안티 패턴으로 기록 된 것을 보았지만).
내가 말한 것은 EJB 주석이 클래스를 빈에 의존하지 않게 만드는 방법이었습니다. this.bean = new Bean();을 갖는 주요 차이점은 무엇입니까? 또는 @EJB 콩 콩? 결국 두 가지 구현 모두 클래스를 Bean에 의존하게 만들 것입니다. 맞습니까? 아니면 여기에 개념을 혼합하고 있습니까? –
종속성 삽입 지점은 종속성을 제거하는 것이 아닙니다. 그것의 요점은 외부로부터 그들을 주입하는 것이다.이렇게하면 단위 테스트에서 가짜 종속성을 수동으로 주입 할 수 있습니다. –
그래서 더 많은 연구를 통해 Dependency Injection은 모의 콩 세트를 단순화하기위한 Unit 테스트 이외의 다른 작업에 실제로 더 효과적이라고 생각하게되었습니다. 나는 그것이 저쪽에 어떻게 도움이되는지 이해하려고 노력하고있다 –