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

自己做网站还是开淘宝网站首页不被收录

自己做网站还是开淘宝,网站首页不被收录,营销系统网站源码,厦门国外网站建设公司哪家好文章目录 事件监听驱动 与 异步事件源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/14562665/

相关文章:

  • 昆山网站优化建设美食网页设计模板中文
  • 旅游网站开发系统的er图惠城中山网站建设
  • 松岗做网站哪家便宜广东 网站建设
  • 莱芜正规的企业建站公司新浪体育世界杯
  • o2o平台模式wordpress 百度seo插件
  • 建设一个网站需要那些技术北京seo百度推广
  • 制作微网站公司做房产网站哪个好
  • 上海网站建设开网站开发的任务要求
  • wordpress中文建站公司网站建设案例教程
  • 手机版微网站网站原型设计和版式设计
  • 搭建自己的博客网站深圳 建网站
  • 网站回答问题app怎么做php 如何在网站根目录创建文件夹
  • 购物网站后台管理系统如何查企业的工商信息
  • 怎么建设国字形网站做教学的视频网站
  • wordpress 增加直达连接嘉兴seo优化
  • 合肥网站制作公司电话做微信的微网站费用多少
  • 网站建设报价清单网站建设栏目层级
  • 谁做广东11彩票网站上海松江区网站建设
  • 新手建设网站步骤wordpress 不同侧边栏
  • 电子商务网站建设与管理总结网站建设预算方案
  • 一般找人做网站多少钱雄安网站建设单位
  • 网站首页设计报价湘潭网站设计外包公司
  • 伊利网站建设评价现货市场交易平台
  • 怎样创建网站流程工厂视频网站建设
  • 石家庄网站建设 河北供求网合肥app外包公司
  • 可信赖的武进网站建设定制一个软件要多少钱
  • 网站建设开发技术类型忻州网站建设求职简历
  • 做丝网网站哪个好芜湖做网站需要多少钱
  • 无锡哪里有做网站的公司网页制作怎么把图片放进去
  • 公司建站方案做网站卖