无锡网站建设选千客云网络,网站开发技术支持与保障,网站开发成本分析,lol有哪些网站是做陪玩的简单理解
其实就是监听处理。比如找工作平台上#xff0c;雇主 employer 发布自己的雇佣条件#xff0c;目的是平台中有符合条件的求职者时#xff0c;及时向雇主推荐。求职者发布简历#xff0c;当平台发现某个求职者比较符合条件#xff0c;就触发被动#xff0c;推荐…简单理解
其实就是监听处理。比如找工作平台上雇主 employer 发布自己的雇佣条件目的是平台中有符合条件的求职者时及时向雇主推荐。求职者发布简历当平台发现某个求职者比较符合条件就触发被动推荐给雇主。
实现的组成
XXXXXXXEvent容器事件相当于上方的【目的是平台中有符合条件的求职者时及时向雇主推荐】。这个事件继承ApplicationEvent声明我是一个事件。XXXXXXXEventListener事件监听器相当于上方的【当平台发现某个求职者比较符合条件就触发被动推荐给雇主。】。其实包含两个主要功能一个是监听某个event是否被发布了一个是若是event被发布了之后的处理操作。继承ApplicationListenerapplicationContext.publishEvent发布事件用来触发容器事件。相当于上方的【求职者发布简历】。该方法相当于人为去发布事件进而引起EventListener中内容的执行。但当系统创建spring容器、加载spring容器时会自动触发容器事件
使用场景
当系统中的某个操作可在多个功能中被执行时且该操作所需参数固定使用这一方法可大大减少代码量 不同Bean之间进行传递时也可实现解耦。
举例
文件结构只做参考 applicationContext.publishEvent发布事件 Autowiredprivate ApplicationContext applicationContext;RequestMapping(value /test, method RequestMethod.POST)ResponseBodypublic CommonResultBillSupplier test(RequestParam(value param2) String param2) {applicationContext.publishEvent(new XXXXEvent(this, param2));return CommonResult.success(测试成功);}XXXXEvent.java
Getter
Setter
public class XXXXEvent extends ApplicationEvent {private param2;public XXXXEvent(Object source, param2) {super(source);this.param2 param2;}
}XXXXHandler.java
EnableAsync
public class XXXXHandler implements ApplicationListener {Overridepublic void onApplicationEvent(ApplicationEvent event) {if (event instanceof XXXXEvent) {try {// 此处为处理逻辑} catch (Exception e) {e.printStackTrace();}} else {// log.info(容器本身事件 event);}}
}此处介绍一下instanceof:作用检查左侧对象是否为右侧类或其子类的实例若是则为true否则为false。