2012-06-19 4 views
0

나는 이벤트 관찰자 클래스가 있습니다. 그것은 일반적인 메일러입니다. 그것은 이벤트를 소요하고 그것의 이메일을 만듭니다.CDI에서 동일한 클래스의 여러 관찰자

<m:Mailer 
resource="WEB-INF/email/adminConfirmation.ftl" 
emailNotificationAddress="[email protected]"> 
    <order:onOrderChange> 
     <s:parameters> 
     <order:StateChange> 
      <s:Observes /> 
     </order:StateChange> 
     </s:parameters> 
    </order:onOrderChange> 
</m:Mailer> 
<m:Mailer 
resource="WEB-INF/email/userConfirmation.ftl" 
emailNotificationAddress="${order.user.email}"> 
    <order:onOrderChange> 
     <s:parameters> 
     <order:StateChange> 
      <s:Observes /> 
     </order:StateChange> 
     </s:parameters> 
    </order:onOrderChange> 
</m:Mailer> 

을 그리고 또한 나는 그것을 상속하고 싶은이 주석 기반의 정보를, 그래서이 순서를 선언 할 필요가 없습니다 : 그래서 같은이 관찰자 클래스의 여러 인스턴스를 생성 할 때마다 onOrderChange 방법. 나는 s : modifies로 두 개의 인스턴스를 선언하려고 시도했다. 하지만 내가하는 일과 상관없이 하나의 리스너 인스턴스가 첨부됩니다.

필자는 이벤트 관찰자와 동일한 클래스의 여러 구성 인스턴스를 필사적으로 첨부하려고합니다. 그리고

당신이이 검색 무엇 :-) ... 당신은 클래스가 아닌 심 3 XML 구성을 게시 할 경우

답변

0

모두에게 쉬울 수 있습니다 ... 모든 솔루션 아직 발견하지 않았습니다 다른 이벤트를 듣고 이벤트에 따라 다른 이메일을 보내는 일반적인 메일러? 요구 사항의 일반적인 부분을 볼 수 있을지 확실하지 않은 경우 질문에 정보를 추가하여 명확하게 전달할 수 있습니다. 하나의 이벤트 다른 한정자 주석 (예를 들어, RegistrationMailEvent) (@Admin, @User)로 수신 한 MailSender을 데 내가 대신 추천 할 것입니다

. 완전한 전자 메일 논리를 한 곳에서 시작합니다. 너무 복잡해지면 더 많은 빈들로 리펙토링 할 수 있습니다.

귀하의 요구 사항에 맞습니까?

아, 그리고 BTW : 이벤트는 동기식입니다 (). 따라서 이벤트 처리가 완료 될 때까지 실행 스레드를 중지한다는 점에 유의해야합니다. 느린 메일 서버의 경우 원하지 않을 수도 있습니다.

+0

명확히하기 위해 - 구현은 중요하지 않습니다. 나는 같은 클래스의 여러 관찰자 빈 인스턴스를 만드는 것에 대해 물어 봤다. 구현과 목적은 중요하지 않습니다. 이 bean은 정확히 같은 구현을 가지고 있다고 가정하지만 다르게 매개 변수화됩니다. –

+0

이것은 멋진 장소로되어 있기 때문에 귀하의 게시물 주제를 안전하게 읽을 수 있습니다. –

관련 문제