ActivemqPlugin — это плагин для сообщений на основе ActiveMq, предназначенный для быстрой интеграции с JFinal.
Адрес проекта: http://www.gitee.com/hinglo-c/ActivemqPlugin
1. Клонируйте проект с помощью git на локальную машину и установите его в локальный репозиторий. Установка в локальный репозиторий обязательна, так как плагин не загружен в центральный репозиторий.
2. Включите зависимость в файле pom.xml
<dependency>
<groupId>cn.hinglo.activemq</groupId>
<artifactId>activemqplugin</artifactId>
<version>1.0.0</version>
</dependency>
3. В конфигурационном методе public void configPlugin(Plugins plugins)
класса JfinalConfig добавьте плагин. Конфигурация приведена ниже, для других параметров убедитесь, что вы их правильно настроили.
ActiveMqPlugin activeMqPlugin = new ActiveMqPlugin("tcp://127.0.0.1:61616");
plugins.add(activeMqPlugin);
4. Отправка сообщений: способ 1: Использование объекта сообщения из библиотеки ActiveMQ из Apache, создание сообщения, например:
ActiveMQTextMessage message = new ActiveMQTextMessage();
message.setText("Hello world");
// Отправка сообщения в очередь, параметры: имя очереди, объект сообщения, для отправки сообщения в тему используйте: sendTopicsMsg
SendMsgKit.sendQueueMsg("queue-test", message);
```способ 2: Использование сессии для создания и отправки сообщений через native JMS интерфейс,
```java
// Используем SessionKit для получения сессии
Session session = SessionKit.getJmsSession();
TextMessage message = session.createTextMessage("Сообщение, созданное с помощью сессии");
// Отправка сообщения в очередь, параметры: имя очереди, объект сообщения, сессия, для отправки сообщения в тему используйте: sendTopicsMsg
SendMsgKit.sendQueueMsg("queue-test", message, session);
5. Прослушивание сообщений: для прослушивания сообщений необходимо реализовать интерфейс MessageListener
из JMS и пометить его аннотацией @MsgListener
, аннотация имеет два параметра: имя очереди и тип очереди (очередь или тема), например:
@MsgListener("queue-test")
public class TestMessageListener implements MessageListener {
@Override
public void onMessage(Message message) {
TextMessage textMessage = (TextMessage) message;
try {
System.out.println(textMessage.getText());
} catch (JMSException e) {
e.printStackTrace();
}
}
}
Внимание: В плагине ActiveMqPlugin есть другие настройки, которые можно использовать, если необходимо прослушивать несколько очередей и различать сообщения по очереди, обратитесь к: https://blog.csdn.net/whs_321/article/details/75349112
// Основной код
ActiveMQDestination queues = (ActiveMQDestination) message.getJMSDestination();
if (queues.getPhysicalName().equalsIgnoreCase("queue1")) {
// Бизнес-логика ...
} else if (queues.getPhysicalName().equalsIgnoreCase("queue2")) {
// Бизнес-логика ...
} ...
```## Завершение
**Это мой первый опыт работы с ActiveMQ, используемые элементы довольно просты, функционал плагинов ограничен, поэтому реализуется только базовая отправка сообщений. Если в коде есть ошибки, прошу вас указать на них и дать советы. Также вы можете внести изменения в код в соответствии со своими требованиями.**
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )