springboot整合rabbbitmq--注解方式+yml配置

maven依赖

复制代码
<!--rabbitmq-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-amqp</artifactId>
        </dependency>
        <!--mail依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
复制代码

 

1. 测试方法 controller  生产者

复制代码
    @GetMapping("/test1")
    public void test(HttpServletRequest request) throws Exception {

        String authorization = request.getHeader("Authorization");
        String username = (String) JwtUtils.parseJWT(authorization).get("username");
        HashMap<String, String> map = new HashMap<>();
        map.put("username",username);
        map.put("msg","开始发送邮件");
        try {
            rabbitTemplate.convertAndSend("name_exchange","name_routingKey",map);//指定交换机 路由key
        } catch (AmqpException e) {
            log.info("生产者失败");
        }
        log.info("test执行了");
    }
复制代码

2 .消费者--监听

复制代码
@Component
public class Listener {
    @Autowired
    private JavaMailSender javaMailSender;

    @RabbitListener(bindings = @QueueBinding(
            value = @Queue(value = "scan_queue", durable = "false"), //队列名  是否持久化
            exchange = @Exchange(
                    value = "name_exchange",  //交换机配置
                    ignoreDeclarationExceptions = "true",
                    type = ExchangeTypes.TOPIC
            ),
            key = {"scan_routingKey"}))
    public void listen(Map map) {

        System.out.println("接收到消息:" + map.get("msg"));
        SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
        simpleMailMessage.setSubject("尊敬的用"+map.get("username")+"户您好!");
        simpleMailMessage.setText("扫描完毕");
        simpleMailMessage.setTo("oooooo@163.com");
        simpleMailMessage.setFrom("xxxxxxxxx@163.com");
        javaMailSender.send(simpleMailMessage);
    }
}
复制代码

邮件和rabbitmq配置

复制代码
  mail:
    host: smtp.163.com
    protocol: smtp
    default-encoding: utf-8
    password: ******
    username: *****@163.com
    port: 25
  rabbitmq:
    username: dev
    password: ****
    host: localhost
    port: 5672
    virtual-host: /dev
    template:
      retry:
        enabled: true
        initial-interval: 2000ms
        max-interval: 10000ms
        multiplier: 2
    publisher-confirm-type: correlated
复制代码

 

posted @   myWang  阅读(184)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示