spring 事件使用
2024-09-06 12:13:12
1.事件定义
import lombok.Data;
import org.springframework.context.ApplicationEvent; /**
* 事件定义,这里监听MsgMessage消息对象
*/
@Data
public class MsgApplicationEvent extends ApplicationEvent { private MsgMessage message; public MsgApplicationEvent(Object source,MsgMessage message) {
super(source);
this.message=message;
}
}
2.事件监听
import com.alibaba.fastjson.JSON;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component; /**
* 事件监听,处理事件
*/
@Component
public class HandleEnvent { @EventListener(MsgApplicationEvent.class)
public void handeEnvent(MsgApplicationEvent event){
MsgMessage message= event.getMessage();
System.out.println("消息处理事件...:"+ JSON.toJSONString(message));
}
}
3.发布事件
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.stereotype.Service; /**
* 发布事件
*/
@Service
public class MsgPublishEvent { @Autowired
ApplicationContext context; public void publishEvent(MsgMessage message){
context.publishEvent(new MsgApplicationEvent(new Object(),message));
}
}
4.使用事件
事件使用结合具体业务注入即可
@Autowired
private MsgPublishEvent msgPublishEvent; @GetMapping("/test")
@ResponseBody
public String test(){
MsgMessage message=new MsgMessage();
message.setTitle("hello");
message.setMessage("我是个消息提示哦!"); msgPublishEvent.publishEvent(message); return "success";
}
最新文章
- 利用DelegatingHandler实现Web Api 的Api key校验
- HashMap vs TreeMap vs Hashtable vs LinkedHashMap
- dataWithContentsOfURL报错问题
- 封装WCF客户端调用
- 解决ntp的错误 no server suitable for synchronization found
- [转]Java中的多线程你只要看这一篇就够了
- Activity(活动)-初讲
- POJ 2253 Frogger (最短路)
- ASP.NET中的Request、Response、Server对象
- c - 给分数分级别
- 内存管理pbuf.c源码解析——LwIP学习
- DataTables获取表单输入框数据
- 50个必备的实用jQuery代码段+ 可以直接拿来用的15个jQuery代码片段
- php中国的垃圾问题
- [mysql]ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value 解决方法
- Redis两种秒杀抢购思路
- Chrome_断点调试(使用vue-resource进行数据交互)
- 解读socketserver源码
- 迅为IMX6核心板兼容工业级、商业扩展级、Plus版本核心板
- a标签的4种状态及设置CSS