저는 CDI를 처음 사용하고 있으며 설명하기가 어렵지만 한 번 시도해 볼 수있는 문제가 있습니다.CDI 중첩 된 생산자 문제
public class MyBean {
private RequestData dataHolder;
@Produces
@RequestScoped
public RequestData getData() {
return dataHolder;
}
}
나는이 프로듀서 CDI 것을 알고 인스턴스 "삶"을 생산 : 여기처럼 RequestData라는 클래스의 인스턴스 (예를 들어 그 의사 코드) 범위 요청을 생성하는 CDI 생산을하고 싶습니다 (요청이 지속되는 한 요청을 싱글 톤 인스턴스 thingy로 요청할 수 있습니다.)
이제 RequestData 클래스에 더 많은 cdi 제작자가 포함되도록하고 싶습니다. 이 예 (다시 자바 의사 코드)에서와 마찬가지로 :
는public class RequestData {
private Something1 param1;
private Something2 param2;
...
@Produces
public Something1 getParam1(){
return param1;
}
@Produces
public Something2 getParam2(){
...
}
}
내 문제의 마지막 질문은 내가 PARAM1 및 PARAM2 강제 할 수 있습니다 (에서 myBean에 요청 싱글 인스턴스에서 어떤 자바 코드/주석을 생산하는 방법이다 또는 무엇이 필요합니까?)
요약하면 MyBean은 RequestData를 생성하고 RequestData는 전체 요청 시간 동안 생존하고 더 나아가 param1, param2를 생성합니다. 여기
클래스 주입 PARAM1
public class Stuff{
@Inject
public void startup(Something1 param1){
// param1 shall come from MyBean.getData().getParam1()
}
}
어떤 아이디어를 몇 가지 예를 들어 어떻게을 실현하려? cdi 엔진에서 param1에 대한 MyBean.getData(). getParam1()을 수행하는 방법은 무엇입니까?
안녕이 내가 요구하지만하지 않습니다이 경우를 들어
, 다음과 같이Instance
게으른 주사를 사용하는 것이 훨씬 더 쉽다 나는 그것을 좋아한다. 제 요구 사항에 따라 제 질문을 풀어 주시겠습니까? – Ckkn하나, 나는 당신이 그것을 해결하려는 방식으로 당신의 문제를 해결 wouldnt. param1과 param2를 만들려면 다음과 같이'RequestData'에 의존해야합니다 : '''@Produces @RequestScoped public Something1 produce (RequestData rd) ''' – maress