Spring AMQP применяет основные концепции Spring при разработке решений на основе
AMQP. Он предоставляет "шаблон" как высокоуровневую
абстракцию для отправки и получения сообщений. Он также предоставляет поддержку Message-driven для
POJO-бъектов с интерфейсом "listener container". Эти библиотеки облегчают управление AMPQ ресурсами при
использовании DI и декларативного описания конфигурации. Во всех этих случаях, вы увидите сходство
с поддержкой JMS в Spring Framework.
Проект состоит из двух частей: spring-amqp как базовая абстракция и spring-rabbit
как реализация RabbitMQ.
Возможности
Listener container для асинхронной обработки входящих сообщений
RabbitTemplate для отправки и получения сообщений
RabbitAdmin для автоматического описания запросов, обмена и связывания
Быстрый старт
Загрузка
1.3.6
Maven
Gradle
Рекомендованный путь для начального использования spring-amqp в вашем проекте
с использованием системы управления зависимостями – скопировать фрагмент кода ниже и вставить
в вашу конфигурацию сборки. Нужна помощь? Ознакомьтесь с нашими руководствами по созданию приложений
с использованием Maven и
Gradle.
public static void main(final String... args) throws Exception {
ConnectionFactory cf = new CachingConnectionFactory();
// set up the queue, exchange, binding on the broker
RabbitAdmin admin = new RabbitAdmin(cf);
Queue queue = new Queue("myQueue");
admin.declareQueue(queue);
TopicExchange exchange = new TopicExchange("myExchange");
admin.declareExchange(exchange);
admin.declareBinding(
BindingBuilder.bind(queue).to(exchange).with("foo.*"));
// set up the listener and container
SimpleMessageListenerContainer container =
new SimpleMessageListenerContainer(cf);
Object listener = new Object() {
public void handleMessage(String foo) {
System.out.println(foo);
}
};
MessageListenerAdapter adapter = new MessageListenerAdapter(listener);
container.setMessageListener(adapter);
container.setQueueNames("myQueue");
container.start();
// send something
RabbitTemplate template = new RabbitTemplate(cf);
template.convertAndSend("myExchange", "foo.bar", "Hello, world!");
Thread.sleep(1000);
container.stop();
}