0
У меня есть фасоль (EventSender
), которая имеет набор впрыскиваемых бобов (Listener
) следующим образом. Весна, похоже, не вводит оба компонента-приемника в набор (иногда нет). Есть ли способ гарантировать, что все компоненты, реализующие интерфейс, вводятся?Как гарантировать инъекцию набора одинаковых бобов?
public interface Listener {
void handleEvent(EventType event)
}
@Named
public class EventSender {
@Inject
Set<Listener> listeners;
public void SendEvent (EventType event) {
for(Listener listener: listeners){
listener.handleEvent(event);
}
}
}
@Named
public class Listener1 implements Listener {
@Override
public void handleEvent(EventType event){
//handle this event
}
}
@Named
public class Listener2 implements Listener {
@Override
public void handleEvent(EventType event){
//handle this event
}
}
Может быть, вы можете использовать пружину '@ Autowire' (или' @ Required', чтобы убедиться, что инъецированное) и аннотация @ @ Component. '@ Inject' не дает никакой гарантии, что зависимость будет введена –