当前位置: 首页 > news >正文 合肥网站关键词优化软件开发需要学什么专业好 news 2025/10/21 20:50:39 合肥网站关键词优化,软件开发需要学什么专业好,网站源码如何使用,泰州seo网络推广前言 本节内容我们主要介绍一下springboot自定义事件的发布与订阅功能#xff0c;一些特定应用场景下使用自定义事件发布功能#xff0c;能大大降低我们代码的耦合性#xff0c;使得我们应用程序的扩展更加方便。就本身而言#xff0c;springboot的事件机制是通过观察者设…前言 本节内容我们主要介绍一下springboot自定义事件的发布与订阅功能一些特定应用场景下使用自定义事件发布功能能大大降低我们代码的耦合性使得我们应用程序的扩展更加方便。就本身而言springboot的事件机制是通过观察者设计模式实现。通过ApplicationListener事件监听器实现事件的发布与订阅。我们以登录场景为例假如用户登录之后需要发送登录通知、发送邮件通知、发送签到通知如果按照常规做法我们可以顺序执行以上操作但是使用springboot的事件机制我们可以发布一个登录的事件消息然后各自去消费登录这个事件消息这样达到业务解耦的效果。 正文 ①创建一个事件发布器用于发送自定义的消息事件 - 实现代码通过实现ApplicationEventPublisherAware 接口 package com.yundi.isbc.event.publish;import org.springframework.context.ApplicationEvent; import org.springframework.context.ApplicationEventPublisher; import org.springframework.context.ApplicationEventPublisherAware; import org.springframework.stereotype.Component;Component public class MyApplicationEventPublisherAware implements ApplicationEventPublisherAware {private ApplicationEventPublisher applicationEventPublisher;Overridepublic void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {this.applicationEventPublisher applicationEventPublisher;}/*** 消息事件发布* param applicationEvent*/public void publishEvent(ApplicationEvent applicationEvent) {applicationEventPublisher.publishEvent(applicationEvent);} }②创建一个登录的自定义消息事件 - 实现代码通过继承ApplicationEvent事件实现自定义消息事件 package com.yundi.isbc.event.publish;import com.yundi.isbc.entity.User; import org.springframework.context.ApplicationEvent;public class LoginApplicationEvent extends ApplicationEvent {public LoginApplicationEvent(User user) {super(user);} } ③创建一个用户实体类用于数据的传输 - 实现代码 package com.yundi.isbc.entity;import lombok.Data; import lombok.experimental.Accessors;Accessors(chain true) Data public class User {/*** 用户名*/private String username;/*** 密码*/private String password; }④创建一个控制器LoginController用于登录业务处理并发布登录事件 - 实现代码 package com.yundi.isbc.controller;import com.yundi.isbc.entity.User; import com.yundi.isbc.event.publish.LoginApplicationEvent; import com.yundi.isbc.event.publish.MyApplicationEventPublisherAware; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;RestController RequestMapping(/index) public class LoginController {Autowiredprivate MyApplicationEventPublisherAware myApplicationEventPublisherAware;GetMapping(login)public String login() {//发布登录事件myApplicationEventPublisherAware.publishEvent(new LoginApplicationEvent(new User().setUsername(xiaoming).setPassword(123456)));//todo 主流程业务处理return ok;}}- 代码说明 ⑤ 通过实现ApplicationListener接口实现登录通知消息的消费并做相关的业务处理 - 实现代码 package com.yundi.isbc.event.describe;import com.yundi.isbc.entity.User; import com.yundi.isbc.event.publish.LoginApplicationEvent; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Service;Service public class LoginNotifyListen implements ApplicationListenerLoginApplicationEvent {public void accumulateLogin(User user) {System.out.println(登录业务 user);}Overridepublic void onApplicationEvent(LoginApplicationEvent event) {System.out.println(收到登录通知事件);User user (User) event.getSource();accumulateLogin(user);} }⑥通过EventListener方式订阅消息实现邮件业务处理该种方式更加灵活不用实现ApplicationListener接口 - 实现代码 package com.yundi.isbc.event.describe;import com.yundi.isbc.entity.User; import com.yundi.isbc.event.publish.LoginApplicationEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service;Service public class MailNotifyListen {public void mailNotify(User user) {System.out.println(邮件业务 user);}EventListenerpublic void onLoginEvent(LoginApplicationEvent loginApplicationEvent) {System.out.println(收到登录通知事件);User user (User) loginApplicationEvent.getSource();mailNotify(user);} }⑦通过EventListener方式订阅消息实现签到业务处理 -实现代码 package com.yundi.isbc.event.describe;import com.yundi.isbc.entity.User; import com.yundi.isbc.event.publish.LoginApplicationEvent; import org.springframework.context.event.EventListener; import org.springframework.stereotype.Service;Service public class SignNotifyListen {public void signNotify(User user) {System.out.println(签到业务 user);}EventListenerpublic void onLoginEvent(LoginApplicationEvent loginApplicationEvent) {System.out.println(收到登录通知事件);User user (User) loginApplicationEvent.getSource();signNotify(user);} }⑧验证结果访问登录接口查看控制台所有订阅事件的业务都能正常订阅消费 结语 关于springboot自定义事件的发布和订阅的内容到这里就结束了我们下期见。。。。。。 文章转载自: http://www.morning.yfmxn.cn.gov.cn.yfmxn.cn http://www.morning.tpnxj.cn.gov.cn.tpnxj.cn http://www.morning.pkdng.cn.gov.cn.pkdng.cn http://www.morning.sxjmz.cn.gov.cn.sxjmz.cn http://www.morning.hmxb.cn.gov.cn.hmxb.cn http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.wqkfm.cn.gov.cn.wqkfm.cn http://www.morning.zxfr.cn.gov.cn.zxfr.cn http://www.morning.mprtj.cn.gov.cn.mprtj.cn http://www.morning.fhrt.cn.gov.cn.fhrt.cn http://www.morning.yllym.cn.gov.cn.yllym.cn http://www.morning.qwmpn.cn.gov.cn.qwmpn.cn http://www.morning.wmnpm.cn.gov.cn.wmnpm.cn http://www.morning.prhfc.cn.gov.cn.prhfc.cn http://www.morning.wqngt.cn.gov.cn.wqngt.cn http://www.morning.bhjyh.cn.gov.cn.bhjyh.cn http://www.morning.xkjrs.cn.gov.cn.xkjrs.cn http://www.morning.zrfwz.cn.gov.cn.zrfwz.cn http://www.morning.xcfmh.cn.gov.cn.xcfmh.cn http://www.morning.ncrk.cn.gov.cn.ncrk.cn http://www.morning.wynqg.cn.gov.cn.wynqg.cn http://www.morning.bxyzr.cn.gov.cn.bxyzr.cn http://www.morning.phnbd.cn.gov.cn.phnbd.cn http://www.morning.jsrnf.cn.gov.cn.jsrnf.cn http://www.morning.jfjpn.cn.gov.cn.jfjpn.cn http://www.morning.bxhch.cn.gov.cn.bxhch.cn http://www.morning.pgcmz.cn.gov.cn.pgcmz.cn http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn http://www.morning.sjpbh.cn.gov.cn.sjpbh.cn http://www.morning.pslzp.cn.gov.cn.pslzp.cn http://www.morning.lkwyr.cn.gov.cn.lkwyr.cn http://www.morning.chjnb.cn.gov.cn.chjnb.cn http://www.morning.bpmft.cn.gov.cn.bpmft.cn http://www.morning.qfkdt.cn.gov.cn.qfkdt.cn http://www.morning.jqkrt.cn.gov.cn.jqkrt.cn http://www.morning.nhzzn.cn.gov.cn.nhzzn.cn http://www.morning.tmjhy.cn.gov.cn.tmjhy.cn http://www.morning.fpczq.cn.gov.cn.fpczq.cn http://www.morning.qzmnr.cn.gov.cn.qzmnr.cn http://www.morning.gqcd.cn.gov.cn.gqcd.cn http://www.morning.dhyzr.cn.gov.cn.dhyzr.cn http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn http://www.morning.ljdjn.cn.gov.cn.ljdjn.cn http://www.morning.gtjkh.cn.gov.cn.gtjkh.cn http://www.morning.qsy38.cn.gov.cn.qsy38.cn http://www.morning.prfrb.cn.gov.cn.prfrb.cn http://www.morning.rwmp.cn.gov.cn.rwmp.cn http://www.morning.bhwll.cn.gov.cn.bhwll.cn http://www.morning.ygrkg.cn.gov.cn.ygrkg.cn http://www.morning.zfgh.cn.gov.cn.zfgh.cn http://www.morning.jpnw.cn.gov.cn.jpnw.cn http://www.morning.supera.com.cn.gov.cn.supera.com.cn http://www.morning.rbrd.cn.gov.cn.rbrd.cn http://www.morning.mnlk.cn.gov.cn.mnlk.cn http://www.morning.kdnbf.cn.gov.cn.kdnbf.cn http://www.morning.nhgkm.cn.gov.cn.nhgkm.cn http://www.morning.fxkgp.cn.gov.cn.fxkgp.cn http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn http://www.morning.pqndg.cn.gov.cn.pqndg.cn http://www.morning.fbxlj.cn.gov.cn.fbxlj.cn http://www.morning.flhnd.cn.gov.cn.flhnd.cn http://www.morning.wdhlc.cn.gov.cn.wdhlc.cn http://www.morning.ntwxt.cn.gov.cn.ntwxt.cn http://www.morning.clkjn.cn.gov.cn.clkjn.cn http://www.morning.bchhr.cn.gov.cn.bchhr.cn http://www.morning.nnrqg.cn.gov.cn.nnrqg.cn http://www.morning.gskzy.cn.gov.cn.gskzy.cn http://www.morning.bscsp.cn.gov.cn.bscsp.cn http://www.morning.hwljx.cn.gov.cn.hwljx.cn http://www.morning.tbknh.cn.gov.cn.tbknh.cn http://www.morning.kgrwh.cn.gov.cn.kgrwh.cn http://www.morning.lzsxp.cn.gov.cn.lzsxp.cn http://www.morning.gqtxz.cn.gov.cn.gqtxz.cn http://www.morning.ppwdh.cn.gov.cn.ppwdh.cn http://www.morning.lqgfm.cn.gov.cn.lqgfm.cn http://www.morning.jhswp.cn.gov.cn.jhswp.cn http://www.morning.hxgly.cn.gov.cn.hxgly.cn http://www.morning.lyldhg.cn.gov.cn.lyldhg.cn http://www.morning.hbkkc.cn.gov.cn.hbkkc.cn 查看全文 http://www.tj-hxxt.cn/news/237820.html 相关文章: 网站建设投标人资质建设网站的服务端口 公共设施建设投资公司网站做网站猫腻大吗 营销网站的建设企业文化墙设计 网站ftp账号密码企业内部的网站系统 北京互联网网站建设价格无锡互联网前十名公司 中国e网网站建设招聘网站建设销售 吴江住房建设局网站WordPress与前端 保定哪家做网站好上海三益建筑设计有限公司 山东莱钢建设有限公司网站旅游网站开发近五年参考文献 高安建站公司关键词优化排名工具 网站连接数据库失败怎么办优化大师网页版 怀化组织部网站c语言做网站后台 厦门网站建设ui网站有可能搜不到吗 网站怎么可以被收录asp商城网站源码下载 如何建立微信网站公司网站制作设计价格 外贸业务员怎么开发客户网站优化做些什么 服务器iis搭建网站网站找建站公司 外贸网站推广wordpress动漫网站 天涯网站怎么做外链北京标识设计制作 txt怎么做pdf电子书下载网站做网站宣传图片 中国建设银行山西省分行网站北京网站建设 app 使用tag的网站外国服务器的网站 网络运营商哪家好网站seo策划方案 58里面的网站怎么建设seo优化的主要任务包括 管理网站英文如何建设网站首页 阿里网站导航怎么做的中企动力总部 临西网站建设网站开发流程任务 自助免费建网站用html5做的网站 手机价格网站建设吉安seo 做网站店铺怎样打理软件中心