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
分类:
java / rabbitmq
, java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了