所以我有我的学科课:
@Component
public class Subject {
@Autowired
private List> observers;
public void fireListeners(T monitorable){
for (Observer observer : observers) {
observer.doSome(monitorable);
}
}
}
这是为Monitorable的每个实现创建新的主题实例的方法,例如:
@Autowired
private Subject tripSubject;
行程是可监控的,它有自己的观察者
@Autowired
private Subject truckSubject;
还有卡车
问题是.它仅创建一个主题,所有观察者混合在一起,如何在不为每个可监视对象创建新主题类的情况下将它们分开?
解决方法:
这不是您问题的答案,但可能是您问题的解决方案:Spring 4.2具有内置事件(观察者)机制:
@Autowire ApplicationEventPublisher publisher;
public void doSomething() {
...
//fire the event
publisher.publishEvent(new YourEvent());
...
}
其他一些豆:
//This is the observer, it "catch" the event
@EventListener
public void handleOrderCreatedEvent(YourEvent your) {
...
}
标签:spring,java
来源: https://codeday.me/bug/20191110/2014076.html