Guava: Google Core Libraries for Java
https://github.com/google/guava
观察者 vs 发布/订阅
Spring Events
Event handling in the ApplicationContext is provided through the ApplicationEvent class and the ApplicationListener interface.
If a bean that implements the ApplicationListener interface is deployed into the context, every time an ApplicationEvent gets published to the ApplicationContext, that bean is notified.
Essentially, this is the standard Observer design pattern.
Event channels are conduits in which events are transmitted from event emitters to event consumers. … The physical implementation of event channels can be based on traditional components such as message-oriented middleware…
Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems.