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

自己做网站还是开淘宝网站icp备案信息不能为空

自己做网站还是开淘宝,网站icp备案信息不能为空,网络知识网站,免费申请域名空间文章目录 事件监听驱动 与 异步事件源ApplicationContextAware接口 发布事件事件实体监听事件实现异步注入綫程池 事件驱动机制#xff0c;与MQ消息队列比较 事件监听驱动 与 异步 事件监听驱动优点#xff1a;解耦#xff0c;将 事件和业务进行解耦#xff0c;通过Asyc注解… 文章目录 事件监听驱动 与 异步事件源ApplicationContextAware接口 发布事件事件实体监听事件实现异步注入綫程池 事件驱动机制与MQ消息队列比较 事件监听驱动 与 异步 事件监听驱动优点解耦将 事件和业务进行解耦通过Asyc注解可以实现异步 事件监听驱动优点解耦将 事件和业务进行解耦通过Asyc注解可以实现异步 我们监听事件之前要有事件源source事件Event发布事件publishEvent然后才能到监听事件。 事件驱动机制是观察者模式称发布订阅具体实现事件对象Event相当于被观察对象(Subject), 事件监听(EventListener) 相当于观察者(Observer) 事件源 实现ApplicationContextAware接口 重写setApplicationContext方法 获取ApplicationContext对象 public class FilePhysicalDeleteEventListener implements ApplicationContextAware {private ApplicationContext applicationContext;Overridepublic void setApplicationContext(ApplicationContext applicationContext) throws BeansException {this.applicationContext applicationContext;} }ApplicationContextAware接口 ApplicationContext作用具体参考 https://blog.csdn.net/Pluto372/article/details/130139628 在Spring/SpringMVC中我们拿到IOC容器无非有三种方式那就是使用ApplicationContext接口下的三个实现类ClassPathXmlApplicationContext、FileSystemXmlApplicationContext、AnnotationConfigApplicationContext。 但是SpringBoot的强大让我们无需再配置xml文件也因此我们无法通过上述方式拿到ApplicationContext对象所以当在项目需要用到spring中的bean对象时一般做法就是实现ApplicationContextAware接口通过这个接口就可以获取到ApplicationContext对象进入从ApplicationContext中获取所需要bean对象。 总结通过ApplicationContextAware接口获取ApplicationContext对象ApplicationContext可以获取IOC容器中的bean 发布事件 通过ApplicationContext对象发布 private void physicalDeleteFileByStorageEngine(ListRPanFile realFileRecords) {//映射为路径集合ListString realFilePathList realFileRecords.stream().map(RPanFile::getRealPath).collect(Collectors.toList());DeleteFileContext context new DeleteFileContext();context.setRealFilePathList(realFilePathList);try {storageEngine.delete(context);} catch (IOException e) {//记录错误日志applicationContext.publishEvent(new ErrorLogEvent(this, 实体文件 JSON.toJSONString(realFilePathList) 物理删除失败请执行手动删除, RPanConstants.ZERO_LONG));}}事件实体 事件实体需要继承ApplicationEvent对象 Getter Setter EqualsAndHashCode ToString public class ErrorLogEvent extends ApplicationEvent {/*** 错误日志的内容*/private String errorMsg;/*** 当前登录的用户ID*/private Long userId;public ErrorLogEvent(Object source, String errorMsg, Long userId) {super(source);this.errorMsg errorMsg;this.userId userId;} }监听事件 注解EventListener(ErrorLogEvent.class)方式监听事件 Component public class ErrorLogEventListener {Autowiredprivate IErrorLogService iErrorLogService;/*** 监听系统错误日志事件并保存到数据库中** param event*/EventListener(ErrorLogEvent.class) //监听这个事件Async(value eventListenerTaskExecutor)public void saveErrorLog(ErrorLogEvent event){RPanErrorLog record new RPanErrorLog();//保存到数据库调用mp 方法iErrorLogService.save(record);} }实现异步 实现异步并指定线程池任务执行器value 为指定线程池执行器的 bean的名称。 Async(value “eventListenerTaskExecutor”) 当 ErrorLogEvent 事件发生时相关的处理方法将会以异步的方式执行 并且将使用指定的任务执行器 “eventListenerTaskExecutor”。不阻塞主线程提高响应。 public class ErrorLogEventListener {Autowiredprivate IErrorLogService iErrorLogService;/*** 监听系统错误日志事件并保存到数据库中** param event*/EventListener(ErrorLogEvent.class) //监听这个事件Async(value eventListenerTaskExecutor)public void saveErrorLog(ErrorLogEvent event){RPanErrorLog record new RPanErrorLog();//保存到数据库调用mp 方法iErrorLogService.save(record);} }注入綫程池 通过Configuration注解和Bean注解以配置类的方式注入线程池 通过name属性指定bean的名称 SpringBootConfiguration public class TreadPoolConfig {// 注入bean// 任务线程池执行器Bean(name eventListenerTaskExecutor)public ThreadPoolTaskExecutor eventListenerTaskExecutor(){ThreadPoolTaskExecutor taskExecutor new ThreadPoolTaskExecutor(); // new FutureTask();taskExecutor.setCorePoolSize(10);taskExecutor.setMaxPoolSize(10);taskExecutor.setKeepAliveSeconds(200);taskExecutor.setQueueCapacity(2048);taskExecutor.setThreadNamePrefix(event-listener-thread);//拒绝策略// CallerRunsPolicy 既不抛弃任务也不抛出异常直接使用主线程来执行此任务// abort 直接拒绝并抛异常// discard 丢弃不抛出异常// discardEldest 抛弃队列中等待最久的taskExecutor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());return taskExecutor;} }事件驱动机制与MQ消息队列比较 MQ驱动的作用解耦、异步、削峰 优点解耦异步削峰消息不丢失解决高并发消息 缺点难维护 事件驱动机制解耦、异步做不到削峰。 优点维护简单 缺点大并发扛不住适合单机环境消息可能丢失无法削峰 总结MQ的优点 异步解耦应对高并发的消息适用于分布式环境消息不丢失对消息进行 削峰 总结MQ的缺点 分布式场景下引发的复杂问题如分布式事务等。
http://www.hkea.cn/news/14381799/

相关文章:

  • 照片展示网站什么是网站源码
  • 电子商务网站方案注册网站怎么做网站
  • 张家港做企业网站企业网站php源码免费下载
  • 建设中学校园网站的来源星杰设计官网
  • 网站建设 风险防控服务质量好的外贸营销系统
  • 太湖县住房和城乡建设局网站深圳营销型网站建设电话
  • 百度一下搜索引擎搜索引擎优化是指什么意思
  • 做pc端网站行情网站用品网店进货渠道
  • 池州市建设管理处网站商城型网站开发网站建设
  • 国内定机票网站建设wordpress 关闭访问
  • 电子商务网站域名招聘系统推广哪家好
  • 国际网站建设与维护管理咨询公司口号
  • 中国制造网网站建设的优势如何建设公司网站 需要注意什么
  • 免费自助建网站软件开发区
  • 网站建设的原则有哪些wordpress主题修改不了
  • 网站包括哪些内容重庆高端seo
  • 仿做网站的网站中国最好的室内设计公司
  • 网站建设案例价位网游网站开发
  • phthon网站开发产品设计开发公司
  • 数字经济团体赛北京seo怎么优化
  • 网站建设多久坪山网站建设哪家便宜
  • 网站排名5118养殖类网站模板
  • 湖北省和住房建设厅官方网站微网站如何做微信支付宝
  • 大型做网站的公司做网站的材料
  • 石柱县建设局网站温州网站开发服务商
  • 非常好的网站建设公司大连市建设工程有限公司
  • 专业网站运营托管wordpress怎么上传
  • 云空间提供网站中国优化网
  • 深圳专业建网站公司九曲网站建设
  • wordpress 批量打印文章嘉兴网站制作优化