В Интернете есть много учебных пособий по методу установки RabbitMQ, поэтому я не буду повторять его здесь.
Используйте Rabbitmq для переноса строк и объектов на Springboot. Пример, приведенный в этой статье, заключается в передаче объектов и строк между двумя разными проектами.
Зависимость Rabbitmq (та же конфигурация в обоих проектах):
<Depective> <groupid> org.springframework.boot </GroupId> <artifactid> Spring-boot-starter-amqp </artifactid> </deperency>
Файл конфигурации POM (та же конфигурация в обоих проектах):
spring.application.name: demo1 // Название проекта Spring.rabbitmq.host: 192.168.1.111 // Напишите свой собственный ipspring.rabbitmq.port: 5672spring.rabbitmq.username: gaudspring.rabbitmq.password: gainspring.virtmam. /spring.rabbitmq.publisher-confirms: truespring.rabbitmq.publisher-returns: truespring.rabbitmq.template.mandatory: true
Передача символов взаимная передача (тип темы, используемый в этом примере)
1>. Во -первых, напишите файл конфигурации в производителе (проект A), где генерируется очередь
Импорт org.springframework.amqp.core.binding; импорт org.springframework.amqp.core.bindingbuilder; импорт org.springframework.amqp.core.queue; импорт org.springframework.amqp.core.topicexchange; org.springframework.beans.factory.annotation.qualifier; import org.springframework.context.annotation.bean; import org.springframework.context.annotation.configuration;/** * @author: fdh * @description: * @date: create in 16:13 2017/12/22/ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @@date: create in 16:13 2017/12/12/ @@description. senderconfigration {/** *@Описание: Создать новую очередь topic.messages *@Data: 16: 14 2017/12/22 */@bean (name = "Сообщения") Общедоступная очередь QueeUemessages () {return New queue ("topic.messages"); }/***@Описание: Определите Switch*@Data: 16: 15 2017/12/22*/@bean public tapicexchange Exchange () {return new tapicexchange ("Exchange"); }/** *@Описание: переключатель связывает сообщения очередей связывает переключатель с темой. Messages *@Data: 16: 18 2017/12/22 */@bean BindingExchangeSessages (@qualifier ("Сообщения") BindingBuilder.Bind (QueueMessages). Комбирция (Exchange). With ("topic.messages"); }}2>. На втором этапе (элемент A) производитель отправляет сообщение в очередь сообщения.
/** * @author: fdh * @description: * @date: создать в 14:15 2017/12/22 */ @controllerpublic class rabbitcontroller {@autowired private amqptemplate amqptemplate; @Requestmapping ("/sendss") public void send1 () {amqptemplate.convertAndsend ("Exchange", "topic.messages", "Hello Topic.messages rabbitmq"); }}3>. Затем напишите слушателя на стороне потребителя (проект B). Переключатель поместит сообщение, произведенное производителем в очередь соответствующих сообщений на основе граничного ключа маршрутизации (topic.messages). Слушатель прослушает соответствующую очередь сообщения, чтобы получить сообщения, направленные в очередь сообщения.
Импорт org.springframework.beans.factory.annotation.autowired; import org.springframework.stereotype.component; импорт org.springframework.amqp.rabbit.annotation.rabbitlister;/*** @ Автор: fdh* @ Описание: Сообщение Queue* @ @ @ @ at in 14:19 2017 2017 2017 217 2017. */ @ComponentPublic Class Receiver {@rabbitlistener (queues = "topic.messages") public void Process2 (String Str1) Throws ClassNotFoundException {System.out.println ("Сообщения:"+str1); System.out.println (thread.currentThread (). GetName ()+"Получил сообщение из The Topic.message Queue:"+str1); } Таким образом, написана простая передача строк. Давайте откроем отображение только что определено: 192.168.1.111:8080/sendss
Вы увидите печатное сообщение в окне консоли на стороне потребителя
Выше представляет собой простой пример передачи строк.
2. Следующее фокусируется на передаче объектов между потребителями и производителями.
Передача объектов должна быть сериализована в производителе (а), то есть объект преобразуется в байт -массив для передачи, а в потребителе конвертированный байтовый массив детериализируется в объект. Есть много методов сериализации и десериализации, и здесь мы используем сериализуемый интерфейс Java
1>. Создайте классы организации в проектах производителя (проект A) и потребителя (проект B).
! Уведомление! : Создайте новый класс Entity Class. В этом проекте Boy.java находится в проектах A и B: импорт com.fengdonghao.shiro.bean.boy;
Классы сущности также должны быть последовательными.
пакет com.fengdonghao.shiro.bean; импорт javax.persistence. *; импортировать java.io.serializable;/** * @author: fdh * @description: * @date: создать в 11: 14 2017/12/16 */ @intityPublic Class Implaments Serializable {private static lound seration wind wind winal wind wind wind wind winal winal wind wind winal u @Id @generatedvalue private int id; Приватное название строки; частный int возраст; @Override public String toString () {return "boy {" + "age =" + age + ", id =" + id + ", name = '" + name +'/'' + '}'; } // Методы Getter и Setter здесь опущены} 2>. Настройка очереди сообщений, переключения и привязки привязки в производителе (а), а первый шаг в примере 1 тот же самый
3>. Напишите еще одно отображение в RabbitController.java в продюсере (а), следующим образом
@Requestmapping ("/send") public void sendmessage () {Boy Boy = new Boy (); boy.setname ("tim"); Boy.setage (11); System.out.println (мальчик); // Ниже приведена операция сериализации // Написать OBJ для файла objectOutputStream OOS = null; try {oos = new objectOutputStream (new FileOutputStream (new File ("e: //webpackage//a.txt"))); // временно хранить сериализованный байт -массив в этом каталоге oos.writeobject (boy); } catch (ioException e) {e.printstackTrace (); } наконец {ioutils.closequietly (oos); } rabbitmqservice.send («Объект был сериализован»); 4>. Дезеариализовать байт массив в потребителе (б).
В приемнике перепишите слушателя, например, 1 ключ
@Rabbitlistener (queues = "topic.messages") public void process2 (string str1) {System.out.println (thread.currentThread (). GetName ()+"Получить сообщение от The Teap.Message Queue:"+str1+"и deserialize"); File file = new File ("e: //webpackage//a.txt"); // Пути между потребителями и производителями должны быть согласованы до того, как файл будет прочитать и анализировать. ObjectInputStream OIS = NULL; try {ois = new ObjectInputStream (new FileInputStream (file)); Boy newuser = (мальчик) ois.readobject (); System.out.println ("desecuence:"+newuser); System.out.println ("desecuence:"+newuser.getName ()); System.out.println ("desecuence:"+newuser.getName ()); System.out.println («Определение после getage»+newuser.getage ()); } catch (ioException e) {e.printstackTrace (); } catch (classnotfoundexception e) {e.printstacktrace (); } наконец {ioutils.closequietly (ois); try {fileutils.forceDelete (file); } catch (ioException e) {e.printstackTrace (); }} System.out.println ("Сообщения:"+str1); } Картирование проверки: IP: 8080/Отправить
Результаты следующие:
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.