【金融项目】尚融宝项目(十六)
admin
2024-03-18 20:11:51
0

31、RabbitMQ

31.1、整合Rabbit MQ发送短信

31.1.1、MQ服务器设置

1、访问MQ控制台

http://192.168.100.103:15672

2、创建用户

创建用户 srbuser,配置管理员权限

3、创建虚拟机

创建虚拟机 /srbhost,在Set permission中为新建的用户分配访问虚拟机 /srbhost 和 / 的权限

31.1.2、创建rabbit-mq模块

1、创建模块

srb下创建rabbit-mq模块

2、引入依赖

org.springframework.bootspring-boot-starter-amqpcom.alibabafastjsonorg.projectlomboklombok

**3、创建MQConfig **

package com.atguigu.srb.rabbitutil.config;@Configuration
public class MQConfig {@Beanpublic MessageConverter messageConverter(){//json字符串转换器return new Jackson2JsonMessageConverter();}
}

**4、创建MQConst **

package com.atguigu.srb.rabbitutil.constant;public class MQConst {public static final String EXCHANGE_TOPIC_SMS = "exchange.topic.sms";//交换机public static final String ROUTING_SMS_ITEM = "routing.sms.item";//路由public static final String QUEUE_SMS_ITEM  = "queue.sms.item";//消息队列
}

5、创建MQService

package com.atguigu.srb.rabbitutil.service;@Service
@Slf4j
public class MQService {@Resourceprivate AmqpTemplate amqpTemplate;/***  发送消息* @param exchange 交换机* @param routingKey 路由* @param message 消息*/public boolean sendMessage(String exchange, String routingKey, Object message) {log.info("发送消息...........");amqpTemplate.convertAndSend(exchange, routingKey, message);return true;}
}

31.1.3、service-base中创建SmsDTO

package com.atguigu.srb.base.dto;@Data
@ApiModel(description = "短信")
public class SmsDTO {@ApiModelProperty(value = "手机号")private String mobile;@ApiModelProperty(value = "消息内容")private String message;
}

31.1.4、service-core中发送消息

1、引入依赖


com.atguigurabbit-mq0.0.1-SNAPSHOT

**2、添加yml配置 **

  #spring:rabbitmq:host: 192.168.100.103port: 5672virtual-host: /srbhostusername: srbuserpassword: 123456

3、根据bindCode获取手机号

UserInfoService接口:

String getMobileByBindCode(String bindCode);

UserInfoServiceImpl实现:

@Override
public String getMobileByBindCode(String bindCode) {QueryWrapper userInfoQueryWrapper = new QueryWrapper<>();userInfoQueryWrapper.eq("bind_code", bindCode);UserInfo userInfo = baseMapper.selectOne(userInfoQueryWrapper);return userInfo.getMobile();
}

4、向MQ发送消息

UserAccountServiceImpl 充值回调方法的最后添加发送消息的代码:

@Resource
private UserInfoService userInfoService;
@Resource
private MQService mqService;@Transactional(rollbackFor = Exception.class)
@Override
public void notify(Map paramMap) {log.info("充值成功:" + JSONObject.toJSONString(paramMap));......//发消息log.info("发消息");String mobile = userInfoService.getMobileByBindCode(bindCode);SmsDTO smsDTO = new SmsDTO();smsDTO.setMobile(mobile);smsDTO.setMessage("充值成功");mqService.sendMessage(MQConst.EXCHANGE_TOPIC_SMS, MQConst.ROUTING_SMS_ITEM, smsDTO);
}

31.1.5、service-sms中监听消息

1、引入依赖


com.atguigurabbit-mq0.0.1-SNAPSHOT

2、添加配置 yml

  #spring:rabbitmq:host: 192.168.100.103port: 5672virtual-host: /srbhostusername: srbuserpassword: 123456

3、创建MQ监听器

package com.atguigu.srb.sms.receiver;@Component
@Slf4j
public class SmsReceiver {@Resourceprivate SmsService smsService;@RabbitListener(bindings = @QueueBinding(value = @Queue(value = MQConst.QUEUE_SMS_ITEM, durable = "true"),exchange = @Exchange(value = MQConst.EXCHANGE_TOPIC_SMS),key = {MQConst.ROUTING_SMS_ITEM}))public void send(SmsDTO smsDTO) throws IOException {log.info("SmsReceiver 消息监听");Map param = new HashMap<>();param.put("code", smsDTO.getMessage());smsService.send(smsDTO.getMobile(), SmsProperties.TEMPLATE_CODE, param);}
}

本文章参考B站 尚硅谷《尚融宝》Java微服务分布式金融项目,仅供个人学习使用,部分内容为本人自己见解,与尚硅谷无关。

相关内容

热门资讯

北京航空材料研究院股份有限公司... 本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、...
不差钱且效率持续走低,百普赛斯... 文丨郭小兴编辑丨百进 来源丨新商悟 (本文约为800字) 账上躺着15.3亿元现金,净资产收益率却跌...
开年A股并购重组逾500起 产... 杭州高新区之江工业园 本版供图:图虫创意 证券时报记者 杨霞 2026年开年,A股并购重...
净值波动变大、业绩比较基准修改... [ 2026年以来,农银理财、民生理财、中邮理财、兴银理财等近10家机构相继发布公告,下调旗下多只产...
维尔利:公司董事长变更为李遥 上证报中国证券网讯(邱思雨 记者 操子怡)2月26日晚间,维尔利公告,公司于近日收到董事长李月中递交...
美股七巨头收盘播报|周四(2月... 美股七巨头收盘播报|周四(2月26日),美国科技股七巨头(Magnificent 7)指数跌1.89...
三友医疗业绩快报:2025年度... 上证报中国证券网讯(记者 骆民)三友医疗披露业绩快报。公司2025年实现营业总收入5.43亿元,同比...
京东发布有奖发票活动数据:近8... 来源:新浪科技 新浪科技讯 2月26日下午消息,为落实财政部、商务部、国家税务总局联合部署的有奖发票...
2026存储“超级牛市”仍未结... 来源:经济观察网 经观财经热点 在存储芯片行业迎来超级周期的背景下,知名做空机构香橼研究对美股存储...
中国央行:支持境内银行与境外机... 中新社北京2月26日电 (陶思阅)为提升资本项目开放水平,发展人民币离岸市场,完善跨境资本流动宏观审...
2025年全国经营主体发展向新... 来源:中国金融信息网 新华财经北京2月26日电(记者王悦阳)记者2月26日从市场监管总局获悉,202...
光明日报|通关便利化持续赋能外... 通关便利化持续赋能外贸发展 光明日报记者 张 翼 今年是“十五五”开局之年,为确保外贸开好局起好步,...
原创 明... 2026年2月26日,黄金市场出现了一个极其罕见的信号:国际金价和国内金价正在“分道扬镳”。 就在昨...
金银狂飙 直播间“锁价券”锁住... 来源:滚动播报 (来源:北京商报) 春节假期结束,黄金、白银价格盘中再度走强。截至2月26日20时3...
王剑锋周伟率队赴上海开展经贸交... 王剑锋周伟率队赴上海开展经贸交流活动 深化对接合作 共谋发展新篇 2月26日,2026年常州—上海经...
出售水井坊?帝亚吉欧最新回应:... 【导读】帝亚吉欧管理层表示不会贱卖资产,从未讨论过出售水井坊 中国基金报记者 郑俊婷 在日前召开的2...
原创 几... 几块钱包邮背后的商业逻辑:淘宝、拼多多不亏的秘密 打开淘宝、拼多多,五块九的发卡、九块九的数据线、十...
侃股:AH股溢价有望持续收缩 据报道,公募基金不断买入高折价的AH股中的港股,这有助于降低AH股溢价率。从价值投资的角度看,同股、...
连任仅三个多月,八一钢铁董事长... 柯善良、刘文壮先生因工作原因,辞去公司董事长、总经理职务。公司于2026年2月26日召开第九届董事会...
宇树科技、西门子能源…默茨中国... 来源:澎湃新闻 2月26日下午,正在访华的德国总理默茨在浙江杭州率团参访宇树科技。澎湃新闻(www....