Spring boot整合rabbitMQ

Springboot整合【RabbitMQ】

前面我讲了rabbitMQ的Maven整合,其实spring boot也是差不多的,分为几个步骤吧

ps:我就用一个简单模式来演示,其他模式自己举一反三,其实都差不多的

学东西就是要 知其然,知其所以然

1.1创建父工程maven项目,方便管理

1.2 创建消息提供者producer

创建子模块:

依赖可以在创建的时候选择也可以在也可以到后面导入,但是建议不管怎么样先引入springWeb不然后面要手写启动类,麻烦

    <dependencies>
        <!--rabbitMQ-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.amqp</groupId>
            <artifactId>spring-rabbit-test</artifactId>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <scope>runtime</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

修改主配置:application.yml

server:
  port: 9001
spring:
  application:
    name: producer
  rabbitmq:
    host: 这里填自己的rabbitMQ所在的主机 本机就填localhost或者127.0.0.1
    # 虚拟主机
    virtual-host: host1
    port: 5672
    # 用户名
    username: ktkt
    # 密码
    password: ktkt

创建service包编写消息发送接口

/**
 * Created by IntelliJ IDEA.
 * User: kt
 * Date: 2020/12/7 11:17
 * @author kt
 */
@Service
public class TestService {
    //实例化rabbit管理模板,操作对象
    @Resource
    private AmqpTemplate amqpTemplate;

    public void sendMsg(String msg){
        //发送消息到队列
        amqpTemplate.convertAndSend("queue",msg);
        //发送消息到队列(订阅模式)
        amqpTemplate.convertAndSend("ex1","",msg);
        //发送消息到队列(路由模式)  如果第一个是交换机的名称参数二就是key
        amqpTemplate.convertAndSend("ex2","b",msg);
    }
}

创建controller,方便浏览器访问调试看效果

/**
 * Created by IntelliJ IDEA.
 * User: kt
 * Date: 2020/12/7 11:10
 *
 * @author kt
 */
@RestController
public class TestController {
    @Resource
    TestService testService;

    @RequestMapping("/test")
    public String test(String msg) {
        testService.sendMsg(msg);
        System.out.println("发送消息:"+msg);
        return "success";
    }
}

可以开始调试了,效果就可以观察管理面板了 15672

然后我们想以用户的形式,接收到消息我们应该这么做

1.3 创建消息提供者consumer

创建子工程spring boot 项目

选择依赖(和producer一样,可以手动引入)

修改主配置:application.yml

server:
  port: 9001
spring:
  application:
    name: producer
  rabbitmq:
    host: 这里填自己的rabbitMQ所在的主机 本机就填localhost或者127.0.0.1
    # 虚拟主机
    virtual-host: host1
    port: 5672
    # 用户名
    username: ktkt
    # 密码
    password: ktkt

接下来创建一个消息接收的业务方法

/**
 * Created by IntelliJ IDEA.
 * User: kt
 * Date: 2020/12/7 18:33
 * @author kt
 */
@Service
//监听队列
@RabbitListener(queues = "queue")
public class SendService {
    
    //表示监听者监听到之后消息传到哪? 这里我们就用到msg里
    @RabbitHandler
    public void receiveMsg(String msg){
        System.out.println("接收到的消息:"+msg);
    }
}

然后都启动,然后浏览器访问producer的接口发送,观察consumer控制台看效果!!就ok了

这是一个简单的方法,其他的方法都差不多啦!
如果觉得小编写的可以,请给小编一个免费的赞和关注吧0.0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值