Spring事件 spring事件机制是由发布者和订阅者两部分组成,也就是发布订阅机制,通常只在单体架构中使用。可以将非核心业务解耦出来,例如消息通知,日志记录等。像这种机制,第三方组件也有,例如Redis的发布订阅机制,再者就是消息队列了,例如RabbitMQ,不仅能通过**Fanout**交换机进行广播,还能通过其他交换机点对点发送,这种就更专业一些了,功能也更强大(例如消息的重复消费,消息持久化等等),这种更 2025-06-29 事件 #spring
Spring状态机 传统`if else`与`switch`在条件过多的情况下会导致耦合过高,难以维护。spring状态机通过将条件提取到外部实现解耦。通过定义状态和事件来触发对应的状态转换。若需要更高级的组件,推荐使用工作流框架(`activiti`等)。 2025-06-27 状态机 #spring #springboot
数据库初始化工具 当需要在项目启动时,自动创建对应的数据库表结构和数据时。以前都是通过实现`CommandLineRunner`的子线程,通过调用编写的`mapper`文件执行对应的`sql`语句。但这样太繁琐了,所以今天就推荐`liquibase`来进行数据库初始化和`sql`文件的版本管理。 2025-06-23 数据库初始化 #liquibase
Guava实现接口限流 guava是google开发的工具包,包含很多工具。今天通过它的`RateLimiter`+注解来实现接口限流(底层基于令牌桶算法)。 2025-06-20 接口限流 #Guava