JPA로 큰 응용 프로그램을 CDI로 마이그레이션하려고합니다. 모든 코드를 변경하기 전에 다음 패턴이 작동하는지 알아야합니다. 이렇게하면 응용 프로그램을 부분적으로 마이그레이션 할 수 있습니다. 명명 된 상태 비 저장 빈을 인스턴스화 할 수 있습니까?
내 관리 빈
:@Named
@Stateless
public class LanguageBoundary implements Serializable {
@Inject
LanguageService languageService;
@Inject
CrudService crudService;
public LanguageEntity findById(Long id) {
return crudService.find(LanguageEntity.class, id);
}
...
내가 다른 클래스에서 사용할 수는 다음에 대한 조언
// Methods: DAO - Used by original deprecated parent wrapper class
public LanguageEntity findByIdImpl(Id id) {
LanguageBoundary lb = new LanguageBoundary();
return lb.findById(id.getValue());
}
감사합니다.
나는 존 (John)만큼 호기심이 많습니다. '@Named'는 EL을 통해 웹 페이지에 표시되는 CDI 빈을 선언합니다. 여기서 '@Stateless'는 EJB 컨테이너 빈을 선언합니다. 우려의 분리가 둘 모두를 혼합하는 것은 아닙니다. 또한 EJB 구성 요소를 UI 계층에 표시하는 것은 좋지 않습니다. – Sam