摘要: 通过Redis+Mysql来自定义Spring-Statemachine的持久化 我们在使用Spring状态机的时候,往往需要对于`StateMachine`持久化操作,但是官方为我们提供的基于redis的持久化并不是特别好,一方面是因为只存redis容易导致数据丢失,另一方面因为状态机的特性需要对应的`StateMachine`的数据永久有效,导致redis中的key永不过期。 阅读全文
posted @ 2023-07-30 16:56 loveletters 阅读(656) 评论(0) 推荐(0) 编辑
摘要: 使用ShardingShpere来实现读写分离跟分库分表 # 环境准备 两个mysql集群,一主一从 我们简单的用docker-compose来快速搭建一个 ```yaml version: '3' services: master1: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: 123456 po 阅读全文
posted @ 2023-05-20 19:55 loveletters 阅读(78) 评论(0) 推荐(0) 编辑
摘要: SpringBoot基于注解来动态切换数据源 前言 我们在日常开发中,经常会用到多数据源,实现的方式有很多种,我这里分享一种通过动态数据源的方式来实现多数据源。通过自定义一个注解DS加上AOP来动态切换数据源。我们的注解可以作用于类、方法、接口、接口方法上。优先级为:类方法>类>接口方法>接口 SpringBoot的动态数据源,实际上就是把多个 阅读全文
posted @ 2023-05-17 16:58 loveletters 阅读(980) 评论(0) 推荐(0) 编辑
摘要: 【转载】SpringBoot自带的工具类 断言 对象、数组、集合 ObjectUtils StringUtils CollectionUtils 文件、资源、IO 流 FileCopyUtils ResourceUtils StreamUtils 反射、AOP ReflectionUtils [AopUtils] [AopContext] 阅读全文
posted @ 2023-05-14 20:07 loveletters 阅读(66) 评论(0) 推荐(0) 编辑
摘要: 【转载】代码命名规范 管理类命名 传播类命名 回调类命名 监控类命名 内存管理类命名 过滤检测类命名 结构类命名 常见设计模式命名 解析类命名 网络类命名 CRUD命名 其他 End 日常编码中,代码的命名是个大的学问。能快速的看懂开源软件的代码结构和意图,也是一项必备的能力。那它们有什么规律呢? Java项目的代码结构 阅读全文
posted @ 2023-05-14 19:58 loveletters 阅读(51) 评论(0) 推荐(0) 编辑
摘要: Kotlin在进行后端开发中一些注意事项 前言 我们通过kotlin在进行后端开发的时候,大部分时候可以直接调用java的方法,但是有时候会因为各种原因不能够直接使用。本文旨在记录一下,我在使用kotlin进行后端开发中遇到的一些问题。 @Slf4j 我们在平时java开发中经常会用到一个lombok提供的注解@Slf4j,来帮我们快速生成 阅读全文
posted @ 2023-04-20 22:39 loveletters 阅读(239) 评论(0) 推荐(0) 编辑
摘要: CompletableFuture从入门到精通?算了,入个门就行了 Future vs CompletableFuture 准备工作 为了便于后续更好地调试和学习,我们需要定义一个工具类CommonUtils辅助我们对知识的理解。这个工具类总共四个方法 readFile:读取指定路径的文件内容 sleepMillis:休眠指定的毫秒数 sleepSecond:休眠指 阅读全文
posted @ 2023-04-07 22:43 loveletters 阅读(76) 评论(1) 推荐(0) 编辑
摘要: SpringBoot启动流程 启动类 @SpringBootApplication public class App { public static void main(String[] args) { SpringApplication.run(App.class,args); } } @SpringBootApplicati 阅读全文
posted @ 2023-04-05 22:11 loveletters 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 分布式系统——分布式ID方案 分布式ID介绍 在分布式系统中,我们经常需要生成全局唯一的标识符,例如订单号,用户id,消息id等。这些标识符通常被称为分布式id。分布式id有以下几个常见的要求: 全局唯一:不同的节点或服务不能生成重复的id。 高性能:生成id的速度要快,不能成为系统的瓶颈。 低延迟:生成id的过程要尽可能简单, 阅读全文
posted @ 2023-04-03 23:48 loveletters 阅读(109) 评论(0) 推荐(0) 编辑
摘要: Spring从熟悉到陌生 BeanFactory与ApplicationContext的区别与联系 在SpringBoot项目中我们通过SpringApplication.run(SpringLearnApplication.class, args);来启动项目,实际上这个方法有一个返回值,类型为 ConfigurableA 阅读全文
posted @ 2023-04-03 23:46 loveletters 阅读(36) 评论(0) 推荐(0) 编辑