我有幾個類可以觀察一些CDI事件。是否可以聲明哪些類應該用於不同的情況?選擇某些CDI事件觀察者
比如我有一個產生事件類:
class Producer
{
@Inject
private Event<SomeEvent> event;
public void fire()
{
event.fire(new SomeEvent());
}
}
而且我有兩個消費類:
class ConsumerA
{
public void onEvent(@Observes SomeEvent event);
}
class ConsumerB
{
public void onEvent(@Observes SomeEvent event);
}
如何使用在一種情況下ConsumerA
情況下,在其他情況下ConsumerB
實例?
我需要類似的東西:
class UseCaseA
{
@Inject
Producer producer;
@Inject
ConsumerA consumerA;
public void doWork()
{
producer.fire(); //consumerA.onEvent() will be called
}
}
class UseCaseB
{
@Inject
Producer producer;
@Inject
ConsumerB consumerB;
public void doWork()
{
producer.fire(); //consumerB.onEvent() will be called
}
}
我會避免使用名稱生產者爲此,除非這具有不可避免的業務含義。 CDI中的生產者方法和字段被添加到容器的bean創建邏輯中。 – redge 2015-04-05 02:23:03