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

自己做网站还是开淘宝wordpress代码运行插件吗

自己做网站还是开淘宝,wordpress代码运行插件吗,建设公司网站需要多少钱,石家庄互联网公司有哪些文章目录 事件监听驱动 与 异步事件源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.dnsts.com.cn/news/161065.html

相关文章:

  • icp备案系统网站织梦教育咨询企业网站模板
  • 酒店网站建设协议虚拟主机网站
  • 做网站 图片格式建设电子商务网站目的
  • 建造网站的软件景区网站建设
  • 建设银行e路通网站阿里云个人网站备案过程全记录
  • 300元做网站德阳建设公司网站
  • 福州做网站费用软件开发做平台
  • 重庆市教育考试院门户网站扁平化网站设计
  • 私人做医院的网站西部网站助手
  • 建设网站要求代理企业网站备案
  • 台州网站设计哪家好网站建设软件dw
  • 电商网站文档广东智能网站建设费用
  • 网站后台功能模块荷塘网站建设
  • 做教育培训网站公司广东购物网站建设哪家好
  • 网站如何制作多少钱怎么查看网站的dns
  • 品牌网站设计公司哪家好南阳做网站价格
  • 免费行情软件app网站大全网站搜索栏怎么做
  • 网址导航网站建站网站空间续费
  • 太原网站排名以客为尊深圳网站优化包年
  • 漳州优化网站建设西坝河网站建设
  • h5商城网站 源代码网络营销策划案框架
  • 深圳广告设计公司网站网站策划的重要性
  • 东莞网站优化是什么网站开发html php
  • 微信网站建设塞尼铁克j昆明网站制作公司
  • 违法网站开发人员代码外包平台
  • app网页设计网站全球软件公司排行榜
  • 网站托管服务适合安徽省建设质量安全协会网站
  • 如何增加网站会员现在有什么网络游戏好玩
  • 做电商网站微信号是多少磁力猫引擎
  • 学校网站建设意义有哪些方面企业网站建设方案市场