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

游戏平台网站制作大连网站建设费用

游戏平台网站制作,大连网站建设费用,哪个网站教做饭做的好,易货网站开发目录 1、Spring监听器简介 2、事件(Event) 3、监听器(Listener) 3、事件发布器 4、监听器使用 4.1、自定义事件 4.2、自定义监听器 4.3、发布事件 4.4、测试 4.5、使用注解方式监听 4.6、异步事件处理 5、总结 1、Spri…

目录

1、Spring监听器简介

2、事件(Event)

3、监听器(Listener)

3、事件发布器

4、监听器使用

4.1、自定义事件

4.2、自定义监听器

4.3、发布事件

4.4、测试

 4.5、使用注解方式监听

4.6、异步事件处理

5、总结


1、Spring监听器简介

Spring 监听器(Listener)用于监听应用程序中的事件,并在事件发生时执行特定操作。常见的事件包括应用启动、关闭、请求处理等。Spring 提供了多种监听器接口,例如ApplicationListener、ServletRequestListener、HttpSessionListener等,开发者可以通过实现这些接口或者添加对应的注解来监听和处理事件。

2、事件(Event)

在Spring事件顶层类为EventObject抽象类,ApplicationEvent继承了EventObject,是所有事件的基础类,自定义事件需要继承此类。Spring中提供了SpringApplicationEvent,在该类下提供一些实现类。

继承这些类的自定义类都可用作为事件类进行发布,事件通常用于在系统中发生某些操作,通知其他的模块进行一些相应的操作,例如系统启动事件、客户注册系统等。

3、监听器(Listener)

Spring中的监听器ApplicationListener,属于函数式接口,实现该接口的类可用监听特点类型的事件,当检查到特点类型事件时,可用自动进行一些用户开发的操作。

@FunctionalInterface
public interface ApplicationListener<E extends ApplicationEvent> extends EventListener {void onApplicationEvent(E event);default boolean supportsAsyncExecution() {return true;}static <T> ApplicationListener<PayloadApplicationEvent<T>> forPayload(Consumer<T> consumer) {return (event) -> {consumer.accept(event.getPayload());};}
}

3、事件发布器

Spring中发布事件的接口ApplicationEventPublisher,用于发布事件。ApplicationContext上下文接口继承了该类,可以发布事件。

@FunctionalInterface
public interface ApplicationEventPublisher {default void publishEvent(ApplicationEvent event) {this.publishEvent((Object)event);}void publishEvent(Object event);
}

4、监听器使用

4.1、自定义事件

创建自定义事件类,自定义事件类需要继承ApplicationEvent。

package com.gs.listener;import lombok.AllArgsConstructor;
import lombok.Data;
import org.springframework.context.ApplicationEvent;public class CustomEvent extends ApplicationEvent {private String message;public CustomEvent(Object source, String message) {super(source);this.message = message;}public String getMessage(){return this.message;}
}

4.2、自定义监听器

自定义监听器需要实现ApplicationListener接口。

package com.gs.listener;import org.springframework.context.ApplicationListener;@Component
public class CustomEvenListener implements ApplicationListener<CustomEvent> {@Overridepublic void onApplicationEvent(CustomEvent event) {System.out.println("接受客户消息" + event.getMessage());}
}

4.3、发布事件

自定义事件发布器需要实现ApplicationEventPublisher接口

package com.gs.listener;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Component;@Component
public class CustomEventPublisher {@Autowiredprivate ApplicationEventPublisher publisher;public void publishCustomEvent(String message){System.out.println("发布自定义事件");publisher.publishEvent(new CustomEvent(this,"这是一个自定义测试事件"));}
}

4.4、测试

package com.gs.listener;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;@Component
public class CustomEventTest implements CommandLineRunner {@Autowiredprivate CustomEventPublisher publisher;@Overridepublic void run(String... args) throws Exception {publisher.publishCustomEvent("Hello Spring Event");}
}

 运行结果:

 4.5、使用注解方式监听

通过在方法上使用@EventListener注解进行监听

package com.gs.listener;import org.springframework.context.ApplicationListener;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;@Component
public class CustomEvenListener {@EventListenerpublic void handleCustomEvent(CustomEvent event) {System.out.println("接受客户消息: " + event.getMessage());}
}

4.6、异步事件处理

默认情况下,Spring事件是同步处理的。如果希望事件处理异步进行,可以使用@Async注解。例如:

package com.gs.listener;import org.springframework.context.ApplicationListener;
import org.springframework.context.event.EventListener;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Component;@Component
public class CustomEvenListener {@Async@EventListenerpublic void handleCustomEvent(CustomEvent event) {System.out.println("接受客户消息: " + event.getMessage());}
}

启动类开启异步:

@EnableAsync
@SpringBootApplication
public class DemoProjectApplication {public static void main(String[] args) {SpringApplication.run(DemoProjectApplication.class, args);}}

5、总结

Spring的监听器机制提供了一种灵活的方式来处理应用程序中的事件。通过自定义事件和监听器,可以实现模块之间的解耦,提高代码的可维护性和可扩展性。同时,Spring还提供了注解方式和异步处理的支持,使得事件处理更加方便和高效。

http://www.hrbkazy.com/news/51013.html

相关文章:

  • 门户网站开发项目的风险北京网络推广公司
  • 做视频推广有哪几个网站百度法务部联系方式
  • 沈阳做网站的公司排名免费网站站长查询
  • 怎样做自己的小说网站企业推广策划书
  • 品牌网站要这么做网易游戏推广代理加盟
  • 做网站推广业务怎么样站长之家收录查询
  • 政府网站免费模板psd百度网讯科技客服人工电话
  • 关于集团网站建设的网站推广的常用方法有哪些?
  • 家政服务网站做推广有效果吗上热门最火标题
  • 可以做富集分析的网站西安seo网站建设
  • 南通网站排名优化报价爱战网关键词查询网站
  • 建设网站可选择的方案有百度seo快速提升排名
  • 大网站整站备份seo研究中心论坛
  • 酒类做网站搭建一个网站的流程
  • 用邮箱地址做网站域名好吗济南网站建设公司选济南网络
  • 成都网站制作设计魔贝课凡seo
  • 手机里面的网站怎么制作外贸网站制作
  • 浙江 网站建设天津优化代理
  • 自助建站凡科网杭州网站seo公司
  • 网站建设联百度网盘电脑版
  • 什么是社交电商平台seo培训课程
  • 当当网书店网站建设案例服务网站推广方案
  • 唐山网站建设哪家好电商培训基地
  • 个人可以做网站江苏seo团队
  • 开家网站建设培训贷款客户大数据精准获客
  • wordpress免登陆发布接口广州百度seo排名
  • 简单的个人网站htmlseo技术培训江门
  • 江阴响应式网站建设网站优化方案
  • 网站建设书籍资料推广平台网站有哪些
  • 网站建设论文题目保定seo排名