2010-06-24 7 views
1

응용 범위가있는 여러 구성 요소가 있습니다. 내가 어느 환경에 있는지에 따라 둘 중 하나를 설치하려고합니다. JBoss Seam에서는 @Install (false)를 사용하고 components.xml을 통해 원하는 bean을 구성합니다.CDI - 조건부 설치

CDI/WELD에서 이와 비슷한 방법이 있습니까?

감사합니다,

월터

답변

1

글쎄, 당신은 항상 생산자 방식을 사용하고 당신의 일부 구성을 기반으로 인스턴스화 할 구현을 결정할 수 있습니다. CDI에서는 xml의 양이 최소가되도록 기억하십시오.

그래서, 뭔가 같은 :

@Produces 
public Component createComponent() { 
    if (configuration.isSomething()) { 
     return new ComponentImpl1(); 
    } else { 
     return new ComponentImpl2(); 
    } 
} 
+0

좋아, 좋아, 나는 피트는이 예를 나타내는 기억 생각합니다. 나는 이것이 나를 위해 일할 것이라고 생각한다. –

+0

다른 사용 사례가 있는데, 확장 기능을 작성할 것이라고 생각하고 있습니다. 서버가 시작되면 그 시점에 해당 빈을 설치하거나 등록할지 결정합니다. 그렇지 않으면 컨테이너에서 해당 정의를 제거하기 만하면됩니다. 그래서 설치하지 말아야 할 경우 주석을 추가하여 설치해야한다고 생각합니다. –