首页 > 其他分享 >1月15日总结

1月15日总结

时间:2024-01-15 22:11:59浏览次数:34  
标签:总结 15 name success person Person add addPerson

好呀,我是歪歪。

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;
}

标签:总结,15,name,success,person,Person,add,addPerson
From: https://www.cnblogs.com/lmyy/p/17966500

相关文章

  • 1月14日总结
    果用到动态代理,大家可能会有几种选择,排到前列的是Autofac+Castle、AspectCore和DoraInterception,我将从我当时研究的经历,以及我遇到的场景,为大家展示下聊一聊我为什么要费时费力的整合Microsoft.Extensions.DependencyInjection和Castle.Core当时遇到的场景直接上源码public......
  • 1.15模拟赛 T2题解
    简要题意多重背包但是乘法思路暴力就直接跑背包考虑乘法能否变为加法,可以找到模数的原根,将每个数映射一下,这样乘法就变成了加法,可以直接\(\text{bitset}\)优化,但是暴力这样做还是过不了于是我们考虑二进制分组优化背包,这样复杂度貌似就对了?code#pragmaGCCoptimize("Ofast......
  • 微信小程序测试点,9大方面全方位总结
    微信小程序无需下载安装,用户在微信扫一扫或搜索即可使用,小程序版本类型可分为:开发版、体验版、正式版。开发版、体验版无需审核,只需要给微信号权限,经过扫小程序的二维码就能访问,正式版本需要经过微信审核才可使用。下面从9个方面,总结下微信小程序的测试点:1、功能:与Web和App......
  • CodeForces 1500C Matrix Sorting
    洛谷传送门CF传送门做了好久。怎么会是呢。题目的操作可以看成,求出一些关键字,使得\(B\)矩阵的行是由\(A\)按照这些第\(1\)关键字、第\(2\)关键字一直到第\(k\)关键字,最后还有一个原来所在行下标的关键字,从小到大排序。肯定是从排好序的\(B\)矩阵入手。首先任意找......
  • 闲话1.15
    今天接着摆了。上午打了场模拟赛,接着掉分......
  • MySQL常规(总结)
    1.exist和in的区别1.1select*fromA whereidin(selectidfromB)in 先查询子表,再查询主表,不管子查询是否有数据,但是in只执行一次,查出B表中的所有id字段并缓存起来,检查A表的id是否与B表中的id相等,直到遍历完A表所有记录,所以当子查询数据较大时不适合使用in,因为它会将子......
  • 1.15闲话
    推歌:蜥蜴舞曲/洛天依by伊野奏/Creuzer/Realillusions为啥感觉今天我闲话内容都这么少的样子,可能是因为HS_xh这几天去搞whk了导致闲话水平大幅下降(他去搞whk管我啥事今天上午帮助高一大佬去找羽毛球拍然后没找到,回来用手一抹我去怎么流鼻血了(流汗黄豆)菜菜菜菜菜菜菜菜菜菜......
  • P1558 色板游戏
    原题链接题解1,种30棵树,每棵树代表每种颜色,树的每个节点代表这个颜色在对应区间上是否存在code#include<bits/stdc++.h>usingnamespacestd;intst[32][400005]={0};intlazy[32][400005]={0};voidpushdown(intwho,intnode){st[who][node*2]=lazy[who][node];......
  • Picturesocial | 开发实践:如何在15分钟内将应用容器化
    在常见的软件架构体系中,容器无疑是一个技术热点。有些开发者在工作中熟练使用容器技术,有些可能刚刚开始容器之旅。面对容器使用经验不同的各类开发者,我们希望通过这个系列文章,由浅入深地介绍如何使用容器技术来构建,运维我们的软件应用程序。贯穿整个系列,我们将持续构建一个名为......
  • 2024-1-15 大数据hive-执行计划
    学习执行计划。简单的解释为:explainquery;一个简单的例子为:explainselectsum(id)fromtest1;该语句的执行计划为:STAGEDEPENDENCIES:Stage-1isarootstageStage-0dependsonstages:Stage-1STAGEPLANS:Stage:Stage-1MapReduceMapO......