7.10. 观察方法
发生事件时,观察方法会收到通知。
上下文和依赖注入还提供事务观察方法,它在完成之前或交易完成阶段接收事件通知。
7.10.1. 触发和观察事件
示例:Fire a Event
以下代码显示了在方法中注入和使用的事件:
public class AccountManager {
@Inject Event<Withdrawal> event;
public boolean transfer(Account a, Account b) {
...
event.fire(new Withdrawal(a));
}
}示例:Fire a Event with a Qualifier
您可以使用限定符为事件注入添加注解,使其更具体。有关 限定符 的更多信息,请参阅质量。
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) {
...
}
}