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

网站模板 安全吗wordpress主题 m1

网站模板 安全吗,wordpress主题 m1,网页设计展示图,公司变更股东要交税吗目录 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.yayakq.cn/news/206473/

相关文章:

  • 网站制作一年多少钱微信小程序开发工具手机版
  • 论网站建设情况有什么有趣的网站
  • 简单的网站模板个人网站能做什么
  • 网站程序上传完网站内外链建设
  • 台州做网站哪家好苏州找网络公司建网站
  • 便宜网站开发培训做思维导图的在线网站
  • 宁波自助模板建站品牌设计公司介绍
  • 一起做网店 网站打不开wordpress火车采集
  • 贵阳做网站的公司有哪些海淀做网站好的公司
  • 公司网站文案推广怎么做做药品网站规划方案
  • 专业网站制作推广服务莱芜58同城招聘网最新招聘
  • 给网站做外链要注意哪些深圳网站制作公司深圳app开发
  • 自己做网站需要备案么北京手机站建站
  • Python电影网站开发网页建立
  • 免费好用的网站制作湖州网站制作报价
  • 山东省建设节能协会网站保定网站建设价格低
  • 网站开发怎么写网站免费主机申请
  • 网页传奇新开服seo竞价推广
  • 济南做网站公司哪家好wordpress paginate_links
  • 临沂市建设局网站公示安溪县建设局网站
  • 论坛网站模板下载8小8x人成免费观看网页
  • 阿里云服务器官方网站广州网站建设品牌
  • 做宣传语的网站东莞常平中学
  • 易营宝网站建设wordpress kswapd0
  • 省建设厅网站建筑材料备案申请免费的网站搭建
  • tag做的最好的网站南沙企业网站建设
  • 网站审核备案 几天wordpress固定链接规则文件夹
  • 做专利费减是哪个网站源代码网站怎么建设
  • php5mysql网站开发实例精讲学动漫制作去哪个学校
  • 婚恋网站如何做推广网站未建设的情况说明书