ApplicationListener接口实践
时间:2022-07-25
本文章向大家介绍ApplicationListener接口实践,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
通过之前的学习,我们了解到ApplicationListener接口在spring事件广播中能够将消息广播到需要的监听器中。那么就让我们手撸一个监听器来试试。看看效果。
@Data
public class MyApplicationEvent extends ApplicationEvent {
private String age;
private String name;
/**
* Create a new ApplicationEvent.
*
* @param source the object on which the event initially occurred (never {@code null})
*/
public MyApplicationEvent(Object source,String age,String name) {
super(source);
this.age=age;
this.name=name;
}
}
@Component
public class MyApplicationListener implements ApplicationListener {
/***
* 监听事件
* @param event
*/
@Override
public void onApplicationEvent(ApplicationEvent event) {
System.out.println("myApplication....");
if (event instanceof MyApplicationEvent){
System.out.println("myapplicationEvent...");
System.out.println(event.toString());
}
}
}
@RestController
@RequestMapping("/file")
public class FileController implements ApplicationContextAware {
private static ApplicationContext context;
@GetMapping(value = "/test")
public void test(){
MyApplicationEvent myApplicationEvent=new MyApplicationEvent("test","123","tjl");
context.publishEvent(myApplicationEvent);
}
@Override
public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {
this.context=applicationContext;
}
}
注释:上述打印的结果中,最后两个输出是容器事件。
总结:在做广播的时候要首先明确广播事件,定义好广播事件之后再定义广播监听器。然后在广播监听器中对广播事件进行处理。在发送广播的时候用IOC容器的pushEvent方法。在注入content的时候,可以通过ApplicationContentAware接口来实现。
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Saltstack_使用指南02_远程执行-验证 2.1. Master与哪些minion正常通信2.2. 查看master与指定minion通信是否正常
- Saltstack_使用指南03_配置管理
- Saltstack_使用指南04_数据系统-Grains 4.1. grains条目项信息4.2. grains全部信息4.3. 查询grains指定信息5.1. m
- 揭开spring初始化方法的神秘面纱
- Saltstack_使用指南05_数据系统-Pillar 4.1. 修改配置文件并重启服务4.2. 显示pillar信息6.1. pillar的sls文件编写6.2.
- Python Docker 查看私有仓库镜像【转】
- CentOS7 Docker私有仓库搭建及删除镜像 【转】
- spring的自定义标签都不会?你可能只学到了spring的皮毛
- 面试官:spring的BeanFatory和FactoryBean区别
- Saltstack_使用指南06_远程执行-指定目标
- 什么是缓存击穿、雪崩、穿透
- 如何卸载CDH7.1.1
- java8 stream的这些开发技巧,你值得好好收藏
- 面试官:mybatis中#{ }和${ }的区别
- python 学习笔记(9)——Python 正则表达式