RabbitMQは、一般的に使用されるAMQP実装です。この記事は、RabbitMQとSpring Bootの統合に関する簡単なチュートリアルです。
ActiveMQサーバーをインストールします(インストールすることもできません。インストールされていない場合は、メモリMQを使用します)
スプリングブートプロジェクトを構築し、依存関係を追加します。このアイテムを追加するだけです
<! - ActiveMQ依存関係を追加 - > <依存関係> <groupId> org.springframework.boot </groupid> <artifactid> spring-boot-starter-activemq </artifactid> </dependency>
アプリケーションクラスを追加します
@springbootapplication@enableScheduling //タイムされたタスクを使用してメッセージを送信しますpublic class mqtestapplication {public static void main(string [] args){springApplication.run(mqtestapplication.class、args); }} application.ymlを構成します
春:ActiveMQ:Broker-URL:TCP://127.0.01:61616パッケージ:Trust-All:True
データモデルを構築するには、送信および消費できるデータ型は、文字列、バイト配列、map <string、?>、Serializableオブジェクトです。
//送信されたメッセージがオブジェクトである場合、シリアル化可能なインターフェイスパブリッククラスtmodelを実装する必要があります。プライベートインクカウント; public tmodel(int count){this.count = count; } @Override public String toString(){return "tmodel [count =" + count + "]"; }}プロデューサーを構築します
@componentPublic Class Producer {// JMSTEMPLATEをプロデューサーに注入すると、このテンプレートプライベートファイナルJMSTEMプレートJMSTEMPLATEを介してメッセージを送信できます。 private int count = 0; @Autowired Public Producer(jmStemPlate jmStemPlate){this.jmStemPlate = jmStemPlate; } //ここで、Spring Bootの時限タスクを使用してメッセージを送信します@scheduled(sixedrate = 1000)public void create(){// convertandsendを使用してメッセージを送信しますjmstemplate.convertandsend( "queue1"、new tmodel(count ++)); }}消費者を構築します
@componentpublic class Consumer {@jmslistener(destination = "queue1")public void comsume(tmodel content){system.out.println( "queue1 [" + content + "]"からメッセージを受信する}}特別な注意:生産者と消費者が異なるモジュールに属している場合、消費されるデータをパブリックモジュールに抽象化することをお勧めします。プログラムは、シリアル化可能な介してオブジェクトをシリアル化および脱必要にします。生産者と消費者のオブジェクトモデルのシリアルバージョンを保証する必要があります。
プロジェクトアドレス:https://github.com/ldwqh0/active-mq-spring.git
例:rabbitmqを構成し、キューを追加します
@configurationpublic class aqueue {@beanpublic queue queue(){return new queue( "good");}}}プロデューサーを定義します。
ActiveMQが有効になると、AMQPTEMPLATEが自動的に作成され、必要な場所に挿入できます。このamqptemplateを介してMQにメッセージを送信できます
/***プロデューサーの定義*@Author lidong*/@restcontroller@requestMapping( "/test")public class sendcontroller {@autowiredprivate amqptemplateテンプレート; @getmappingpublic string testsend(){// amqptemplate.tentandsend "消費者を定義し、rabbitlistener(queues = 'good')を指定して、消費のキューを指定します
@componentpublic class Consumer {/***消費者*@paramメッセージ*/ @rabbitlistener(queues = "good")public void handler(string message){system.out.println( "recive message from" + message);}}}}テストを開始して、http:// localhost:8080/testをブラウザに入力して、キューにメッセージを送信します。この列のペアは、消費者が処理できます
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。