当前位置: 首页 > news >正文

网站建设的发展历程网站建设及 维护合同

网站建设的发展历程,网站建设及 维护合同,linchong.wordpress,怎样把自己做的网站上传到网上背景 公司的项目以前代码里面有存在使用spring自带发布订阅的代码#xff0c;因此稍微学习一下如何使用#xff0c;并了解一下这种实现方式的优缺点。 优点 实现方便#xff0c;代码方面基本只需要定义消息体和消费者#xff0c;适用于小型应用程序。不依赖外部中间件因此稍微学习一下如何使用并了解一下这种实现方式的优缺点。 优点 实现方便代码方面基本只需要定义消息体和消费者适用于小型应用程序。不依赖外部中间件因而不需要复杂的配置、部署。 缺点 无法提供消息持久性项目一旦重启消息就会丢失因而不适合实现延迟队列。对比消息队列无法实现复杂的消息过滤、路由过滤。无法实现跨应用程序的事件通信。不同应用程序之间的事件发布和订阅更为容易。 发布订阅模式的优缺点我就不说了就说说不同实现方式之间的优缺点。 一、创建消息类 消息类需要继承ApplicationEvent类。因为java调用构造函数的机制就是默认会调用父类的构造函数而ApplicationEvent类只有一个单参数的构造函数无法自动调用每个构造函数都需要显式调用父类的构造函数。也就是super(source); package org.jeecg.modules.test.testPublic; import org.springframework.context.ApplicationEvent; import java.util.Objects;/*** ClassName: MyEvent* Author: zjc* Date: 2023/8/30 18:22* Description:**/ public class MyEvent extends ApplicationEvent {private String taskId;private Integer sourceType;public MyEvent(Object source) {super(source);}/**** param source 触发事件的对象可随便传不过建议传自己可能用得到的对象。好像在调用放直接this的挺多* param taskId 任务id自己定义的事件要处理的内容* param sourceType 自己定义的源类型用来在多场景触发情况下区分不同场景的标志* return: null**/public MyEvent(Object source,String taskId,Integer sourceType) {super(source);this.taskIdtaskId;this.sourceTypesourceType;}public String getTaskId() {return taskId;}public void setTaskId(String taskId) {this.taskId taskId;}public Integer getSourceType() {return sourceType;}public void setSourceType(Integer sourceType) {this.sourceType sourceType;}Overridepublic boolean equals(Object o) {if (this o) return true;if (o null || getClass() ! o.getClass()) return false;MyEvent myEvent (MyEvent) o;return Objects.equals(taskId, myEvent.taskId) Objects.equals(sourceType, myEvent.sourceType);}Overridepublic int hashCode() {return Objects.hash(taskId, sourceType);}Overridepublic String toString() {return MyEvent{ taskId taskId \ , sourceType sourceType };} } 二、发布消息 发布消息可以直接使用ApplicationContext对象调用publishEvent方法。因为ApplicationContext接口继承了ApplicationEventPublisher接口。注意消息类必须要继承ApplicationEvent类才能作为参数发布消息。 package org.jeecg.modules.test.testPublic;import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController;/*** ClassName: EventController* Author: * Date: 2023/8/31 17:53* Description:**/ RestController Api(test) RequestMapping(/test) public class EventController {Autowiredprivate ApplicationContext applicationContext;ApiOperation(testEvent)GetMapping(/testEvent)public void testEvent(){MyEvent myEventnew MyEvent(this,123456,1);applicationContext.publishEvent(myEvent);}ApiOperation(testEvent1)GetMapping(/testEvent1)public void testEvent1(){MyEvent myEventnew MyEvent(this,123456,2);applicationContext.publishEvent(myEvent);} } 三、监听消息 监听消息类需要实现ApplicationListener接口并通过泛型传入要监听的消息类并重写onApplicationEvent方法。spring内的同一个消息可以有多个监听类一旦监听到消息监听该消息的全部监听类都会执行。 监听类1 package org.jeecg.modules.test.testPublic;import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component;/*** ClassName: MyEventListener* Author: * Date: 2023/8/31 17:50* Description:**/ Component public class MyEventListener implements ApplicationListenerMyEvent {Overridepublic void onApplicationEvent(MyEvent event) {System.out.println(消费者开始消费event.toString()event.getSource().toString());} } 消费者2 package org.jeecg.modules.test.testPublic;import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component;/*** ClassName: MyEventListener* Author: * Date: 2023/8/31 17:50* Description:**/ Component public class MyEventListener1 implements ApplicationListenerMyEvent {Overridepublic void onApplicationEvent(MyEvent event) {System.out.println(消费者1开始消费event.toString()event.getSource().toString());} } 四、测试 调用testEvent接口 调用testEvent1接口 结果均符合预期可以通过在消息体里面加一个字段来区分消息来着不同的触发场景。 即使没有在结构体加上区分消息来源的标识也可以用消息一开始传入的源对象来大概定位到是哪一个类里面触发的消息。
http://www.dnsts.com.cn/news/34046.html

相关文章:

  • 转包网站建设做非法事情网站大图轮播
  • 搜索引擎不收录网站网站建站哪个公司好一点
  • 网站建设软件开发公司哪些网站可以做兼职
  • 四川城乡和住房建设厅官方网站vps网站搬家
  • 如何建设网站功能设计通用cms网站
  • 番禺网站建设企业帝国cms搭建个人网站
  • 无锡网站建设365caiyi福田欧曼服务站
  • 免费网站后台模版用wordpress搭建知名网站
  • 建立了公司网站连云港东海县做网站
  • 外国英文设计网站小型企业管理软件哪个好
  • 做网站需要考虑seo吗莱州相亲网站
  • 商务网站开发文档网站设置怎么调
  • 在线网站软件免费下载潍坊网站制作企业
  • 河南郑州app建设网站wordpress skydrive
  • 南通网站建设 南大街比较商务网站的营销策略
  • 创新的营销型网站设计公司名称大全与寓意
  • 光华路网站建设百度首页登录官网
  • 沙坪坝网站开发企业网站建设规划书
  • 网络游戏网站建设论文wordpress带会员中心主题
  • 网站用户告知书湖南做电商网站需要什么条件
  • 国内免费空间申请seosem是什么意思
  • 网站建设如何收费外贸汽车配件做那个网站
  • 团购网站模板编辑首页做php网站教程视频
  • 成都专业网站设计好公司html移动网站开发
  • 佛山外发加工网泰安seo排名
  • 如何做企业的网站如何整理网站
  • 网站开发 慕课电商网店运营
  • 网站蜘蛛屏蔽怎样恢复天猫代运营公司
  • 网站推广模式深圳关键词自动排名
  • 如何做网站推广方案公司网页打不开