Springboot-Listener(springboot的事件监听的4种实现方式)

springboot事件监听的4种方式

第1种:

1.自定义事件MyApplicationEvent继承ApplicationEvent

import org.springframework.context.ApplicationEvent;

/** * Created by Administrator on 2018\11\13 0013. * 自定义事件继承ApplicationEvent */public class MyApplicationEvent extends ApplicationEvent {    public MyApplicationEvent(Object source) {        super(source);    }}

2.定义一个事件监听器MyApplicationListener实现ApplicationListener接口

public class MyApplicationListener implements ApplicationListener<MyApplicationEvent>{    @Override    public void onApplicationEvent(MyApplicationEvent event) {        System.out.println("接收到事件:"+event.getClass());    }}

3.测试运行

@SpringBootApplicationpublic class ApplicationDemo {    public static void main(String[] args) {        //创建一个可执行的spring应用程序        SpringApplication application = new SpringApplication(ApplicationDemo.class);        //配置事件监听器        application.addListeners(new MyApplicationListener());        //配置应用程序上下文        ConfigurableApplicationContext context =application.run(args);        //发布事件        context.publishEvent(new MyApplicationEvent(new Object()));        //关闭监视器        context.close();    }

}

第2种:

在第1种的基础上直接在MyApplicationListener类上加上@Component注解,纳入spring容器管理

@SpringBootApplicationpublic class ApplicationDemo {    public static void main(String[] args) {        //创建一个可执行的spring应用程序        SpringApplication application = new SpringApplication(ApplicationDemo.class);        //配置事件监听器        //application.addListeners(new MyApplicationListener());        //配置应用程序上下文        ConfigurableApplicationContext context =application.run(args);        //发布事件        context.publishEvent(new MyApplicationEvent(new Object()));        //关闭监视器        context.close();    }

}


第3种:

在application.properties配置文件中配置context.listener.classes=您的包路径.MyApplicationListener

DelegatingApplicationListener 委派监听器 对配置文件进行解析,得到监听器集合,注入Spring容器

第4种:

使用@EventListener注解

@Componentpublic class MyEventHandle {    /**     * 参数任意(为Object)的时候所有事件都会监听到     * 所有,该参数事件,或者其子事件(子类)都可以接收到     */    @EventListener    public void event(Object event){        System.out.println("MyEventHandle 接收到事件:" + event.getClass());    }

}

原文地址:https://www.cnblogs.com/h-java/p/9951547.html

时间: 2024-08-03 04:42:28

Springboot-Listener(springboot的事件监听的4种实现方式)的相关文章

事件监听的三种方法

事件监听的三种方法: addTarget --用于监听一些点击.值改变等事件 代理       -- 监听一些开始.结束.选中某行等一些改变控制属性的一些事件 通知:上面都不行考虑使用通知 通知使用注意:只要监听通知就要移除通知,否则控制器销毁后,通知发送时就会找不到对象导致程序崩溃 文本框事件的监听: textfied代理只能监听开始编辑结束编辑,能否改变文字,不能监听改变文字后的情况,本项目需要 监听文本框中是否有输入,代理和addTarget都不适用. 文本框发出的三个通知: UIKIT_

extjs组件添加事件监听的三种方式 http://blog.sina.com.cn/s/blog_48d7f92901011cfn.html

extjs对组件添加监听的三种方式 在定义组件的配置时设置 如代码中所示: Java代码 xtype : 'textarea', name : 'dataSetField', labelSeparator:'', fieldLabel:'', hideLabel: true, allowBlank: true, height: mainPanelHeight*0.8, anchor:'99%', listeners:{'blur':function(){ alert(1); }} 对组件变量通过

JAVA中按钮的事件监听的三种方式

JAVA中的Swing组件,按钮的重点是进行事件的监听,可以通过调用JButton的addActionListener()方法.这个方法接受一个实现ActionListener接口的对象作为参数,ActionListener接口中只包含一个actionPerformed()方法,所以如果想把事件处理的代码与JButton进行关联,就需要如下的三种做法: 第一种: public class Button extends MyFrame {    private JButton        b1

Android实现Button按钮点击事件监听的几种方式

工作中的项目通常有多个人一起开发,而每个人都有每个人的代码风格,不注重代码规范通常是前人挖坑,后人采坑,降低项目开发效率及加大维护难度,这里分享几种安卓按钮点击事件监听的实现方式. 方式一:直接在Activity中实现View.OnClickListener接口,重写onClick方法,提供所有按钮监听事件入口.这是实际项目中最常用的方式,尤其在页面有多个按钮的情况下比较适用. package com.example.myapp; import android.app.Activity;impo

王立平--android事件监听的3种方式

第一种通常在activity组件的oncreate事件中直接定义,直接动作. 这样的方式每一个控件都定义一次.通常不方便. Button btn = (Button) findViewById(R.id.myButton); btn .setOnClickListener(new View.OnClickListener() { public void onClick(View v) { //do something } }); 另外一种一般是在activity组件实现其接口.这样能够多外控件共

oracle 登录数据库时报 无监听 的一种解决方式(监听日志文件达到4g默认上限)

问题:登录服务器时 报无监听服务 检查步骤: 1.进入sqlplus查看数据库的状态,显示当前数据库的状态为OPEN 脚本:select status from v$Instance; 2.检查数据库的监听服务,登录的时候发现进入监听程序的速度非常慢 脚本:lsnrctl status 3.查看监听日志的大小,位置如下: $ORACLE_BASE\diag\tnslsnr\<hostname>\listener\trace\ 5.重启启动监听即可: lsnrctl stop  停止 lsnrc

Android增加监听的三种实现方式

在Android中,为一个按钮增加监听的方式有三种 1.匿名内部类 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //加载布局文件 setContentView(R.layout.activity_main); //获得布局中的按钮 btn = (Button) findViewById(R.id.btn); //为按钮增加匿名内部类监听 btn

spring boot 源码赏析之事件监听

使用spring Boot已经快1年多了,期间一直想点开springboot源码查看,但由于种种原因一直未能如愿(主要是人类的惰性...),今天就拿springboot 的监听事件祭刀. springboot 中常用的事件监听主要有ApplicationStartedEvent,ApplicationEnviromentPreparedEvent,ApplicationPreparedEvent,ApplicationStoppedEvent等.用于监听springboot生命周期中的各种事件.

Spring Boot实践——事件监听

借鉴:https://blog.csdn.net/Harry_ZH_Wang/article/details/79691994 https://blog.csdn.net/ignorewho/article/details/80702827     https://www.jianshu.com/p/edd4cb960da7 事件监听介绍 Spring提供5种标准的事件监听: 上下文更新事件(ContextRefreshedEvent):该事件会在ApplicationContext被初始化或者