1

我正在使用春季发布订阅设置,将事件发布到单个频道。

不同的事件彼此完全不同,从类型派生侦听器的行为会很混乱。

我有足够的类型,但是我不喜欢大量不同的消息通道来处理不同的类型,所以如果可能的话,我想防止这种情况发生。

4

2 回答 2

0

该要求既不是队列哲学也不是主题哲学......除了一些额外的识别受体逻辑之外还有一些混合......我试图给出一个基本的想法,

       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);
            }
  }
于 2012-08-08T08:22:44.353 回答
0

看看 Spring Integration 模式。您可以仅使用声明性逻辑来执行 pub/sub/channel 模式。

http://static.springsource.org/spring-integration/reference/html/overview.html

于 2012-07-31T15:26:40.410 回答