可以定义代理插件执行的顺序吗?

时间:2015-01-28 19:02:57

标签: activemq

我需要实现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

中找不到关于此的文档

1 个答案:

答案 0 :(得分:0)

BrokerService 使用Chain of Responsibility模式,因此执行顺序由对象初始化顺序定义。