自学内容网 自学内容网

Spring 中的事件驱动模型

事件驱动的基本了解

事件模式也就是观察者模式,当一个对象改变的时候,所有依赖的对象都会收到一个通知。

Subject:抽象主题

Observer:具体主题

Concrete Subject:抽象观察者,在得到更新通知之后去更新自己。

Concrete Observer:一个具体观察者,去实现抽象观察者的定义

Spring事件驱动模型的组成和应用

先定义一个事件,也就是一个类继承ApplicationEvent这个是Spring下的

之后定义一个推送事件的一个消息

在定义一个监听者,在发送消息后监听者会收到消息发送,然后进行处理。

它有两实现方式

第一种是实现ApplicationListener

第二种通过添加注解实现@EventListener,这个可以添加参数也可以不添加,这个主要是看你对那个事件更感兴趣。如果有参数则有且只有一个参数。

创建一个新的类用于事件发布,它有两种方式

第一种ApplicationContext注入到工厂。

第二种就是ApplicationEventPublisher直接注入即可。

如果需要使用异步操作则还需要自己定义一个线程池进行使用。

先创建一个配置类,去使用线程池。

在里面定义线程池

之后在方法上面添加一个@Bean设置参数为eventAsyncTaskExecutor。

定义好了之后回到之前的两个方法里面去指定线程池。

常见的Spring内建事件

创建一个内部事件的一个监听。

这个是在Spring初始化刷新时触发的,也就是所有的Bean都被加载,如果需要监听就添加上@EventListener这个注解,没有添加参数是自动识别的。

这个是Spring容器关闭时会触发。

这个是在Spring运行完毕并且准备接受请求时会触发。


原文地址:https://blog.csdn.net/dengshuweng/article/details/145285898

免责声明:本站文章内容转载自网络资源,如侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!