SpringBoot整合中间件RabbitMQ(五)

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.监听程序

编写监听服务

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 {

    //数组的方式,可以监听多个队列
    @RabbitListener(queues = "invi.news")
    public void receive(Book book) {
        System.out.println("invi.news队列收到消息:" + book.toString());
    }
}

3.发送队列消息

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;


    //发送-单播(点对点)
    @Test
    public void testExchangeDirect() {
 
        rabbitTemplate.convertAndSend("exchange.direct", "invi.news", new Book("《挪威森林》", "村上春树"));
    }


}

运行测试:

2019-03-05 09:41:13.443  INFO 90011 --- [       Thread-2] o.s.a.r.l.SimpleMessageListenerContainer : Waiting for workers to finish.
invi.news队列收到消息: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


你可能感兴趣的:(SpringBoot整合中间件RabbitMQ(五))