7.10. 관찰자 방법

관찰자 메서드는 이벤트가 발생하면 알림을 받습니다.

컨텍스트 및 종속성 주입은 트랜잭션 관찰기 메서드를 제공하여 이벤트가 실행된 트랜잭션의 완료 단계 또는 트랜잭션 완료 단계 이후에 이벤트 알림을 수신합니다.

7.10.1. 이벤트 실행 및 관찰

예제: 이벤트 실행

다음 코드는 메서드에서 주입 및 사용되는 이벤트를 보여줍니다.

public class AccountManager {
  @Inject Event<Withdrawal> event;

  public boolean transfer(Account a, Account b) {
    ...
    event.fire(new Withdrawal(a));
  }
}

예제: 한정자를 사용하여 이벤트 실행

이벤트 삽입에 한정자를 추가하여 보다 구체화할 수 있습니다. 한정자에 대한 자세한 내용은 한정자를 참조하십시오.

public class AccountManager {
  @Inject @Suspicious Event <Withdrawal> event;

  public boolean transfer(Account a, Account b) {
    ...
    event.fire(new Withdrawal(a));
  }
}

예제: 이벤트 관찰

이벤트를 관찰하려면 @Observes 주석을 사용합니다.

public class AccountObserver {
  void checkTran(@Observes Withdrawal w) {
    ...
  }
}

한정자를 사용하여 특정 유형의 이벤트만 관찰할 수 있습니다.

public class AccountObserver {
  void checkTran(@Observes @Suspicious Withdrawal w) {
    ...
  }
}