activemq实现BrokerPlugin

隆长卿
2023-12-01

官方参考:http://activemq.apache.org/interceptors.html

 

步骤1:实现org.apache.activemq.broker.BrokerPlugin

步骤2:继承org.apache.activemq.broker.BrokerFilter

步骤3:activema.xml中声明自定义的BrokerPlugin

 

步骤1:

       public class MsgBorkerPlugin implements BrokerPlugin{

           public Broker installPlugin(Broker broker) throws Exception {
                return new MsgBrokerFilter(broker);
                }

      }

 

步骤2:

       public class MsgBrokerFilter extends BrokerFilter{

            public MsgBrokerFilter(Broker next) {
                super(next);
            }

 

    @Override
     public void acknowledge(ConsumerBrokerExchange consumerExchange,
            MessageAck ack) throws Exception {
          System.out.println("重写改写.............");
          super.acknowledge(consumerExchange, ack);
      }

 

    @Override
    public void send(ProducerBrokerExchange producerExchange,
            Message messageSend) throws Exception {

                System.out.println("发送Message.............");

              super.send(producerExchange, messageSend);
      }

 

    }

 把自定义的类做成jar放到activemq的lib中

 

步骤3:

 创建一个bean

 <bean id="msgBorkerPlugin" class="com.broker.MsgBorkerPlugin"/>

  在<broker> 引用知道自定义的 BorkerPlugin

  <broker xmlns="http://activemq.apache.org/schema/core" brokerName="localhost" dataDirectory="${activemq.base}/data"  persistent="true"         plugins="#msgBorkerPlugin" >

</broker>

 

重启的activemq,笔者测试过可以调用自定义Plugin。

 

 

 类似资料: