首页 > 作文

华为负一屏

更新时间:2023-03-18 10:26:31 阅读: 评论:0

什么能增强免疫力-小暑的来历

华为负一屏
2023年3月18日发(作者:汉族的节日)

springbootApplicationEvent事件监听与异步

ApplicationEvent以及个人特点 Listener是Spring为我们提供的⼀个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷是为了系统业务逻辑解耦,提⾼

可扩展性及可维护性。事件发布者并不需要考虑谁去监听,监听具体的内容是什么,监听者也不需要考虑事件是谁发布,只需要将接收到的事件完成即可,个⼈

理解和mq的模式其实有些相似。

从Spring4.2以后,事件处理不⽤实现ApplicationListener的onApplicationEvent⽅法了,使⽤注解@EventListener可以⾃动关联相关的ApplicationListener。

下⾯是⼀段我在项⽬中⽤到的代码⽰例

需求:在⽤户发起订单投诉后像运营⼈员发送⼀条短信提⽰处理⽤户投诉,如果⽤户⼿机为华为⼿机则向⽤户发送⼀条负⼀屏消息提⽰已接

到投诉正在处理。要求发送短息与负⼀屏消息不得影响主流程的正常流转。

定义event事件模型

⾸先定义⼀个event事件模型。ComplaintDTO为事件发布者传送给事件监听者的⼀些信息,⼊投诉的订单信息、客户信息等。可根据⾃⾝

需要进⾏调整,调整之后需要变动相应的get/t⽅法和构造⽅法。

ationEvent;

publicclassComplaintEventextendsApplicationEvent{

privateComplaintDTOcomplaintDTO;

publicComplaintEvent(Objectsource,ComplaintDTOcomplaintDTO){

super(source);

intDTO=complaintDTO;

}

publicC蒙顶甘露 omplaintDTOgetComplaintDTO(){

returncomplain年度工作总结模板 tDTO;

}

publicvoidtComplaintDTO(ComplaintDTOcomplaintDTO){

intDTO=complaintDTO;

}

}

发布事件

@Autowired

privateApplicationEventPublisherapplicationEventPublisher;

@Override

publicComplaintVOcreateComplaint(ComplaintDTOcomplaintDTO){

//TODO你的业回忆英语 务代码

//发负⼀屏消息和短信

try{山竹英文

ComplaintEventcomplaintEvent=newComplaintEvent(this,complaintDTO);

hEvent(complaintEvent);

}catch(Exceptione){

("投诉发短信或负⼀屏消息失败:[{}]",sage());

}

vo=(po,);

returnvo;

}

事件监听者

事件的监听者实现ApplicationListener接⼝,重写onApplicationEvent⽅法实现事件处理

这⾥需要注意的是ApplicationEvent默认并不是异步的,如果需要异步需要我们在⽅法上加上@Async注解,并在启动类添加

@EnableAsync开启异步

@Log4j2

@Component

publicclassComplaintEventListenerimplementsApplicationListener{

@Async

@Override

publicvoidonApplicationEvent(ComplaintEventevent){

("订单投诉发短信与负⼀屏消息:[{}]",String(event));

//发短信

try{

ndSmsMsg(event);

}catch(Exceptione){

("订单投诉发短信失败:[{}]",sage());

}

//发负⼀屏消息

try{

ndHwPubMsg(event);

}catch(Exceptione){

("订单投诉发负⼀屏消息失败:[{}]",sage());

}

}

}

从Spring4.2以后,事件处理不⽤实现ApplicationListener的onApplicationE动漫男头像可爱 vent⽅法了,使⽤注解@EventListener可以⾃动关联相关的

ApplicationListener。

所以上⾯的代码其实可以改成成下⾯的样⼦

@Log4j2

@Component

publicclassComplaintEventListener{

@Async

@EventListener

publicvoidndMsg(ComplaintEventevent){

("订单投诉发短信与负⼀屏消息:[{}]",String(event));

//发短信

try{

ndSmsMsg(event);

}catch(Exceptione){

("订单投诉发短信失败:[{}]",sage());

}

//发负⼀屏消息

try{

ndHwPubMsg(event);

}catch(Exceptione){

("订单投诉发负⼀屏消息失败:[{}]",sage());

}

}

}

另外ApplicationEvent还能控制事务,这⾥有⼀篇⼤佬写的⾮常详细的

本文发布于:2023-03-18 10:26:30,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/654a8c31479d0ef8de17a5531c7ea964.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:华为负一屏.doc

本文 PDF 下载地址:华为负一屏.pdf

下一篇:返回列表
标签:华为负一屏
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图