我正在使用春季发布订阅设置,将事件发布到单个频道。
不同的事件彼此完全不同,从类型派生侦听器的行为会很混乱。
我有足够的类型,但是我不喜欢大量不同的消息通道来处理不同的类型,所以如果可能的话,我想防止这种情况发生。
我正在使用春季发布订阅设置,将事件发布到单个频道。
不同的事件彼此完全不同,从类型派生侦听器的行为会很混乱。
我有足够的类型,但是我不喜欢大量不同的消息通道来处理不同的类型,所以如果可能的话,我想防止这种情况发生。
该要求既不是队列哲学也不是主题哲学......除了一些额外的识别受体逻辑之外还有一些混合......我试图给出一个基本的想法,
Message -> this interface will have multiple subclasses for different types of messages
interface Receptor {
boolean isMessageDigestable(Message);
void digestMessage(Message);
void subscribe(Publisher);
}
different receptor will implement Receptor
class Publisher {
List<Receptor> receptors;
void addReceptor(){//your code here};
void produceMessage() {
Message m = ....//message production
for (Receptor r : receptors)
{
if (r.isDigestableMessage(m))
r.digestMessage(m);
}
}
看看 Spring Integration 模式。您可以仅使用声明性逻辑来执行 pub/sub/channel 模式。
http://static.springsource.org/spring-integration/reference/html/overview.html