我需要实现2个适合 amq:discardingDLQBrokerPlugin 类别的过滤器,我需要一个在另一个之前执行。
我可以在一个类中实现两个过滤器的逻辑,但由于业务逻辑非常不同,我宁愿选择两个。
我使用两个不同的插件添加过滤器: com.filter.FilterAPlugin 和 com.filter.FilterBPlugin 。过滤器执行顺序遵循“最后定义的第一次执行”逻辑。
示例:在此代理配置中
<amq:broker useJmx="false" persistent="false" schedulerSupport="true">
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:0" />
</amq:transportConnectors>
<amq:plugins>
<amq:discardingDLQBrokerPlugin dropAll="true" dropTemporaryTopics="true" dropTemporaryQueues="true" />
<bean xmlns="http://www.springframework.org/schema/beans" class="com.filter.FilterAPlugin" />
<bean xmlns="http://www.springframework.org/schema/beans" class="com.filter.FilterBPlugin" />
</amq:plugins>
</amq:broker>
首先执行 com.filter.FilterBPlugin 中添加的过滤器。
声明 beans 的顺序是否定义了过滤器的执行顺序?我在apache MQ web
中找不到关于此的文档答案 0 :(得分:0)
BrokerService 使用Chain of Responsibility模式,因此执行顺序由对象初始化顺序定义。