为了能到远方,脚下的每一步都不能少.|

lmyyyy

园龄:2年8个月粉丝:7关注:10

1月15日总结

好呀,我是歪歪。

Spring 的事件监听机制,不知道你有没有用过,实际开发过程中用来进行代码解耦简直不要太爽。

但是我最近碰到了一个涉及到泛型的场景,常规套路下,在这个场景中使用该机制看起来会很傻,但是最终了解到 Spring 有一个优雅的解决方案,然后去了解了一下,感觉有点意思。

和你一起盘一盘。
Demo

首先,第一步啥也别说,先搞一个 Demo 出来。

需求也很简单,假设我们有一个 Person 表,每当 Person 表新增或者修改一条数据的时候,给指定服务同步一下。

伪代码非常的简单:

boolean success = addPerson(person)
if(success){
//发送person,add代表新增
sendToServer(person,"add");
}

这代码能用,完全没有任何问题。

但是,你仔细想,“发给指定服务同步一下”这样的动作按理来说,不应该和用户新增和更新的行为“耦合”在一起,他们应该是两个独立的逻辑。

所以从优雅实现的角度出发,我们可以用 Spring 的事件机制进行解耦。

比如改成这样:

boolean success = addPerson(person)
if(success){
publicAddPersonEvent(person,"add");
}

addPerson 成功之后,直接发布一个事件出去,然后“发给指定服务同步一下”这件事情就可以放在事件监听器去做。

对应的代码也很简单,新建一个 SpringBoot 工程。

首先我们先搞一个 Person 对象:

@Data
public class Person {
private String name;

public Person(String name) {
this.name = name;
}

本文作者:lmyyyy

本文链接:https://www.cnblogs.com/lmyy/p/17966500

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   lmyyyy  阅读(4)  评论(0编辑  收藏  举报
历史上的今天:
2023-01-15 android开发day4_activity
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起