spring扩展点ApplicationListener 订阅发布

ops/2024/10/22 16:27:26/

当我们登录的时候,有时需要发送短信,赠送积分等,为了保证代码单一原则以及开闭原则,可以使用ApplicationListener   代码如下

1:创建事件

java">public class UserEvent extends ApplicationEvent {String userName;public UserEvent(String userName) {super(userName);this.userName=userName;}public String getUserName() {return userName;}public void setUserName(String userName) {this.userName = userName;}}

2:创建监听事件

发送短信

java">public class SmsListener implements ApplicationListener<UserEvent> {@Overridepublic void onApplicationEvent(UserEvent event) {System.out.println("发送短信"+event.getUserName());}}

发送邮件

java">public class EmailListener implements ApplicationListener<UserEvent> {@Overridepublic void onApplicationEvent(UserEvent event) {System.out.println("发送邮件"+event.getUserName());}}

3:发布事件

java">public class text {@Autowiredprivate ApplicationContext applicationContext;public  void login() {//用户登录System.out.println("用户登录===========");//发布事件applicationContext.publishEvent(new UserEvent("张三"));}}


http://www.ppmy.cn/ops/91743.html

相关文章

什么是LIMS实验室管理系统,具有哪些功能特点

LIMS实验室管理系统&#xff0c;即实验室信息管理系统&#xff08;Laboratory Information Management System&#xff09;&#xff0c;是一种利用信息化技术管理和优化实验室工作流程的系统。该系统基于计算机硬件和数据库技术&#xff0c;集成了样品管理、资源管理、事务管理…

在Python中以下划线(_)开头的变量名

在Python中&#xff0c;以下划线&#xff08;_&#xff09;开头的变量名具有一些特定的含义和用法&#xff0c;这些用法涉及到命名约定、变量作用域、以及系统定义的特殊变量。下面我将详细阐述这些特点&#xff0c;但请注意&#xff0c;由于篇幅限制&#xff0c;直接达到2000字…

vue3响应式:Ref和Reactive区别及使用方法

在Vue3中&#xff0c;Ref和Reactive是两个实现响应式编程的关键的API。 1、区别 Ref&#xff1a;用于创建一个响应式的基本数据类型&#xff0c;比如数字、字符串等。它将普通的数据变成响应式数据&#xff0c;可以监听数据的变化。使用Ref时&#xff0c;我们可以通过.value来…

TOMCAT远程代码执行

首先下载一个apache-tomcat8.5.39 进入bin目录找到setclasspath.bat 进入文件进行编辑 修改为自己java所在的路径 在bin目录下打开cmd运行startup.bat 然后在文件管理器中搜索cgi-bin 然后在里面创建bat文件存在内容 然后在网页中打开

ES6对数据类型都做了那些优化

ES6 对 String 字符串类型做优化&#xff1a; ES6 新增了字符串模板&#xff0c;在拼接大段字符串时&#xff0c;用反斜杠(、)取代以往的字符串相加的形 式&#xff0c; 能保留所有空格和换行&#xff0c;使得字符串拼接看起来更加直观&#xff0c; 更加优雅 ES6 对 Array 数…

Jenkins的安装方式

一、Jenkins是什么 Jenkins是一款开源CI&CD软件&#xff0c;用于自动化构建、测试和部署软件等各种任务&#xff0c;以实现持续集成。 Jenkins支持各种运行方式&#xff0c;可通过系统包、Docker或者通过一个独立的Java程序。 二、安装方式 2.1禅道智能应用平台一键安装…

速盾:分享一些防御 DDoS 攻击的措施

DDoS&#xff08;分布式拒绝服务&#xff09;攻击是指攻击者通过操纵大量的计算机或网络设备&#xff0c;向特定的目标发起大规模的网络流量&#xff0c;以消耗目标网络资源&#xff0c;造成网络服务不可用的攻击行为。为了保护网络免受DDoS攻击的影响&#xff0c;组织和个人可…

【简历】吉林某985大学:Java简历指导,面试通过率低

注&#xff1a;为保证用户信息安全&#xff0c;姓名和学校等信息已经进行同层次变更&#xff0c;内容部分细节也进行了部分隐藏 简历说明 这是一份顶级985的25届Java简历。顶级985现在的目标只有一个&#xff0c;就是大厂秋招。那么这位同学跟211和普通同学比&#xff0c;优势还…