1.開啟注解
開啟基于RabbitMQ的注解
package com.invi;
import org.springframework.amqp.rabbit.annotation.EnableRabbit;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
//開啟基于注解的RabbitMQ
@EnableRabbit
@SpringBootApplication
public class Springboot02AmqpApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot02AmqpApplication.class, args);
}
}
2.監(jiān)聽程序
編寫監(jiān)聽服務(wù)
package com.invi.service;
import com.invi.bean.Book;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Service;
@Service
public class BookService {
//數(shù)組的方式薪介,可以監(jiān)聽多個(gè)隊(duì)列
@RabbitListener(queues = "invi.news")
public void receive(Book book) {
System.out.println("invi.news隊(duì)列收到消息:" + book.toString());
}
}
3.發(fā)送隊(duì)列消息
package com.invi;
import com.invi.bean.Book;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
@RunWith(SpringRunner.class)
@SpringBootTest
public class Springboot02AmqpApplicationTests {
@Autowired
RabbitTemplate rabbitTemplate;
//發(fā)送-單播(點(diǎn)對(duì)點(diǎn))
@Test
public void testExchangeDirect() {
rabbitTemplate.convertAndSend("exchange.direct", "invi.news", new Book("《挪威森林》", "村上春樹"));
}
}
運(yùn)行測(cè)試:
2019-03-05 09:41:13.443 INFO 90011 --- [ Thread-2] o.s.a.r.l.SimpleMessageListenerContainer : Waiting for workers to finish.
invi.news隊(duì)列收到消息:Book{name='《挪威森林》', author='村上春樹'}
2019-03-05 09:41:13.474 INFO 90011 --- [ Thread-2] o.s.a.r.l.SimpleMessageListenerContainer : Successfully waited for workers to finish.
2019-03-05 09:41:13.482 INFO 90011 --- [ Thread-2] o.s.a.r.l.SimpleMessageListenerContainer : Shutdown ignored - container is not active already