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

北京住房城乡建设委网站seo网络推广优化

北京住房城乡建设委网站,seo网络推广优化,成全视频免费观看在线看动画,wordpress留言时间不正确1.一个Demo出发 在平时的开发中,其实编写同步线程代码是比较容易的,但是如何将一些操作和另外一些操作进行解除耦合,而事件方式 是一种很好的解耦合方式,比如当一个用户注销一个APP之后,需要发送一些短信 让他引流回来…

1.一个Demo出发

在平时的开发中,其实编写同步线程代码是比较容易的,但是如何将一些操作和另外一些操作进行解除耦合,而事件方式 是一种很好的解耦合方式,比如当一个用户注销一个APP之后,需要发送一些短信 让他引流回来。

核心流程 其实就是 1.定义一个事件 2.事件发布器 3.事件监听器

1.1 定义一个事件

public class UserCloseEvent extends ApplicationEvent {private static final long serialVersionUID = 1L;private String msg ;public UserCloseEvent(Object source, String msg) {super(source);this.msg = msg;}public String getMsg() {return msg;}public void setMsg(String msg) {this.msg = msg;}
}

1.2 发布事件

@Component
public class MyTestEventPubLisher {@Autowiredprivate ApplicationEventPublisher applicationEventPublisher;public void pushUserCloseListener(String msg) {applicationEventPublisher.publishEvent(new UserCloseEvent(this, msg));}
}

1.3 监听器

    @EventListenerpublic void listening3 (UserCloseEvent event) {System.out.println("注解监听器===>UserCloseEvent->发送了一个注销用户的召回申请WA"+event.getClass().getName());}

我们来分析一下 整体的原理,首先定义一个事件,这就是一个普通的对象,第二个就是发布事件,以及事件监听器是怎么感知到 要执行动作。 了解了这个流程之后,就可以很清楚的明白整体的原理。

2. Spring原理流程解析

熟悉Spring源码 bean生命周期的,应该都知道 preInstantiateSingletons 方法,一共是两个对bean的操作,第一部分其实就是实例化、初始化 bean的过程,第二部分,针对的是实现了 实现了 SmartInitializingSingleton 的子类的初始化方法。

2.1 @EventListener 注册为bean的过程

在这里插入图片描述
和事件相关的实现类就是图中的 EventListenerMethodProcessor
在这里插入图片描述
可以看到实现了该接口

public class EventListenerMethodProcessor implements SmartInitializingSingleton, xxx {

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
好了,梳理下具体的过程 其实就是在所有bean进行初始化完成之后,然后在针对注解做解析工作,封装成Listener。

2.2 事件触发的流程

在这里插入图片描述
在这里插入图片描述
这里其实就是根据执行的类型和listener进行匹配,如果是就开始顺序执行,当然也可以使用线程池异步执行。因为前面已经封装了带有注解的方法的信息,所以最终会通过反射的方式执行方法。

在这里插入图片描述

3 造轮子的EventBus

其实针对Guava的EventBus 核心流程
1.定义注解类 @ Subscribe
2.针对提供一个事件控制类EventBus 内部持有 ObserverRegistry 提供一个根据注册和执行事件的方法。主要存储一个map,key是事件类型,value是一个COW set,对应的就是封装的ObserverAction(Class,method) 主要用于后续的反射执行方法。

在这里插入图片描述

总结

其实对于一个框架来说,提供的功能是否易用,非常重要,并且不能和业务代码进行强耦合。所以虽然我们平时的工作是针对CRUD,但是总有一些非业务功能开发,比如一些基础架构的工作,监控、耗时、日志等一些通用功能,一定要使用非侵入业务的方式,AOP就是一种方式,当然各个框架也一般提供一定的预留拓展点,来实现不同的功能。

http://www.hkea.cn/news/263039/

相关文章:

  • 石家庄做外贸网站建设现在最好的营销方式
  • 兰州做网站公司有哪些html+css网页制作成品
  • 福州做网站的公司多少钱信息流优化
  • 群晖的网站开发百度客服怎么转人工
  • 制作网站项目流程无锡网站建设seo
  • 最好的开发网站建设价格如何搜索网页关键词
  • 做网站犯法了 程序员有责任吗网站建设合同
  • 建设部职称网站关键词优化营销
  • 做seo还要需要做网站吗百度热搜榜排行
  • 福建城市建设厅网站怎么推广一个网站
  • 机构网站建设需要交费吗关键词挖掘
  • 专业网站建设费用报价今日最新消息
  • 电商网站建设论文2022黄页全国各行业
  • 能源企业 网站建设网络营销的应用
  • 如何看网站是用什么语言做的关键词排名是由什么决定的
  • 政府网站建设招标书百度网站收录
  • 已经有了网站怎么做推广哈尔滨关键词优化报价
  • 网站建设与管理作业镇江推广公司
  • 域名申请好后 如何建设网站网站权重划分
  • 佛山百度网站快速优化网络营销推广工具
  • 建一个网站需要哪些人广州seo网站推广公司
  • 建设银行etc官方网站搜索引擎优化的七个步骤
  • 做网站需要花钱吗海南百度推广运营中心
  • 做的网站显示图片很慢百度运营公司
  • 青州哪里做网站公司推广渠道
  • 网站面包屑导航怎么做的网推接单平台有哪些
  • 宜昌网站建设兼职百度关键词排名软件
  • 如何让百度快照找到自己的网站营销策划方案ppt模板
  • php网站超市广告软文是什么意思
  • b2c跨境电商宣城网站seo