프로듀서 메서드는 인스턴스를 프로그래밍 방식으로 만들고 컨텍스트에서 인스턴스를 게시하는 데 매우 유용합니다. 문제는 new
에 의해 생성되고 생성자 메서드에서 반환 된 인스턴스의 모든 속성이 CDI에 의해 삽입되지 않는다는 것입니다. Weld 문서에서 나는 이것이 의도적 인 행동이라고 읽었지 만 많은 경우에 그 bean에 대한 주입은 매우 유용 할 것입니다.생성자 메서드로 만든 빈에 CDI 삽입 가능
이러한 빈을 주입 할 수있는 해결 방법이 있습니까?
친애하는 LightGuard, 답장을 보내 주셔서 감사합니다. 나는 그 방향으로 조사 할 것이다. 주사를 요구하는 제작자가있는 빈을 만드는 것에 대한 질문에 대답하려면 데스크톱 (즉 스윙) 응용 프로그램을위한 프레임 워크에서보기를 만드는 방법을 공개하려고한다고 가정합니다. 클라이언트가 뷰를 생성 할 수있게하는 가장 좋은 방법은 팩토리 인터페이스를 제공하는 것입니다. 이제는 내 프레임 워크에서 뷰를 만드는 데 해당 팩토리를 사용할 수 있지만 이러한 뷰는 DI를 사용할 수 없습니다. 그래서 제 생각은 제작자가 뷰를 CDI에 노출시켜 종속적 인 사후 관리를하도록하는 것이 었습니다. 이 동작이 유용 할 수 있다고 생각합니다 ... – jactor
BeanProvider가 생성 된 상황입니다. – LightGuard
'new'로 생성 된 인스턴스에 CDI 빈을 삽입하려면 BeanProvider # injectFields를 사용하십시오 –