- 博客(203)
- 资源 (3)
- 收藏
- 关注
原创 redis缓存、数据库的一致性
Redis缓存与数据库一致性问题源于两者缺乏事务保证,导致数据更新时无法同时成功或失败。该问题无法完全解决,只能通过缩短更新窗口实现最终一致。读取请求通常采用"cache aside"策略,优先查询Redis缓存,未命中再查数据库并更新缓存。更新请求有四种策略:1)先更数据库后更缓存;2)先更缓存后更数据库;3)先删缓存后更数据库;4)先更数据库后删缓存。每种策略在并发场景下都可能出现不一致问题,需配合分布式锁等方案优化。推荐使用"先更数据库后删缓存"策略,因其时间窗
2025-08-12 17:43:54
506
原创 spring Bean生命周期 源代码分析 AbstractAutowireCapableBeanFactory createBean doCreateBean
spring Bean生命周期 源代码分析 AbstractAutowireCapableBeanFactory createBean doCreateBean (1)设置bean的BeanName、BeanClassLoader、BeanFactory; 方法是invokeAwareMethods (2)初始化前置处理, 方法是applyBeanPostProcessorsBeforeInitialization (3)具体初始化, 方法是invokeInitMethods; 判断是否自定义初
2024-02-08 15:52:05
585
1
原创 @Autowired 和 @Resource 区别, 及参数说明
引用所指向的资源的名称。它可以使用全局JNDI名称链接到任何兼容的资源。对于方法注释,默认值是与该方法对应的JavaBeans属性名。默认值:java.lang.Object.class。可以向Deployer提供描述,以帮助选择正确的资源。对于方法注释,默认值是JavaBeans属性的类型。对于类注释,没有默认值,必须指定该值。对于类注释,没有默认值,必须指定该值。对于字段注释,默认值为字段的类型。对于字段注释,默认值为字段名称。声明是否需要带注释的依赖项。资源的Java类型。资源的身份验证类型。
2024-01-29 16:50:36
660
转载 IDEA插件——激活JRebel
https://www.cnblogs.com/lucky-jun/p/16683880.html
2024-01-16 13:42:52
216
原创 Redis 数据的持久化 RDB、AOF、RDB + AOF、No persistence 各自优缺点
Redis持久化选项有4种RDB (Redis Database) 以指定的时间间隔进行数据的快照备份。AOF (Append Only File) 记录更改数据的命令(例如SET), 然后在重启时再次执行这些命令,从而恢复数据。RDB + AOF 组合使用No persistence 禁用持久化
2023-12-07 15:11:29
482
原创 模版模式 设计模式
**case "Simlpe" : //可以利用一些获取Bean的工具获取, 避免new //SpringApplicationUtil.getBean(SimlpeOrder.class);} } /*** 检查参数/*** 获取商品/*** 扣减库存/*** 扣减积分/*** 保存订单/*** 执行模版/**
2023-11-22 14:26:17
574
原创 抽象工厂模式
个人理解,抽象工厂目的和简单工厂大体相同,都是在于业务执行器的选择,也就是if else 的处理, 抽象工厂是一个。在的下单业务中,对于不同的类型的商品(鞋子、帽子),包含南方、北方生产厂商, 两个厂商都可以生产鞋子、帽子。继承AbstractOrder, 实现厂商下单逻辑, 同时也可以调用父级AbstractOrder的公共方法。当生产厂商、商品类型更多的时候,添加实现类,能够利用拆分不同的下单业务,约束接口, 抽取公共方法,统一参数等。可以获取厂商&商品类型的实例, 也可以获取商品类型的实例;
2023-11-21 15:05:27
635
原创 简单工厂模式
在的下单业务中,对于不同的类型的商品(鞋子、帽子),需要处理的下单业务部分相同,部分不同这时候可以利用简单工厂模式,依据不同的商品类型,`调用不同的处理器,进行下单`1.定义 `抽象类 AbstractOrder` 定义声明下单方法, 实现公共下单逻辑; 提供获取对应商品类型的实例 `HatOrder(帽子业务)`、 `ShoeOrder(鞋子业务)`2.定义 实现类 HatOrder(帽子)、 ShoeOrder(鞋子)继承AbstractOrder, 实现下单逻辑, 同时也可以调用父级Abstr
2023-11-20 17:21:49
378
原创 设计模式 实践案例
1.简单工厂 (一)https://preparedata.blog.csdn.net/article/details/132878013
2023-11-20 16:34:51
318
原创 HTTP RESTFul RPC
RPC的实现可以基于TCP协议,也可以基于HTTP协议。在基于TCP协议的情况下,服务的调用方和提供方需要建立Socket连接,然后调用方通过Socket将需要调用的接口名称、方法名称和参数序列化后传递给提供方。http是TCP的上层协议。
2023-09-12 16:01:48
1054
原创 spring cloud、gradle、父子项目、微服务框架搭建---cloud gateway(十)
spring cloud、gradle、父子项目、微服务框架搭建---cloud gateway
2023-09-08 15:56:46
826
原创 spring cloud、gradle、父子项目、微服务框架搭建---spring secuity oauth2、mysql 授权(九)
spring secuity oauth2 + mysql 授权
2023-08-29 15:08:56
656
原创 spring自定义线程池 逻辑 配置 ThreadPoolTaskExecutor corePoolSize maxPoolSize queueCapacity rejectedExecutionHa
spring自定义线程池 逻辑 配置 ThreadPoolTaskExecutor corePoolSize maxPoolSize queueCapacity rejectedExecutionHandler
2023-07-05 09:59:02
2704
原创 Java 自定义注解, 以及@interface @Target @Retention @Around @Before @After ProceedingJoinPoint JoinPoint 等用法
Java 自定义注解, 以及@interface @Target @Retention @Around @Before @After ProceedingJoinPoint JoinPoint 等用法
2023-06-26 15:33:12
1341
原创 RabbitMQ 管理端页面中 批量删除exchanges、queues
RabbitMQ 管理端页面中 批量删除exchanges、queues
2023-05-12 15:53:51
1287
原创 Throwable、Error、Exception 运行时异常、非运行时异常
Throwable、Error、Exception 运行时、非运行时
2023-05-06 17:22:39
984
原创 mysql mybaits的update语句执行, 自定义返回值, 借助变量和<selectKey>
mysql、mybaits的update语句执行, 自定义返回值, 借助变量、
2023-04-19 11:32:15
1188
原创 JAVA 使用@Async、Future、AsyncResult处理异步返回结果, 类似C# Task await功能
JAVA 使用@Async、Future、AsyncResult处理异步返回结果, 类似C# Task await功能
2023-04-03 10:34:47
2581
原创 spring cloud、gradle、父子项目、微服务框架搭建---配置apollo(八)
spring cloud、gradle、父子项目、微服务框架搭建---配置apollo,部署apollo,apollo应用
2023-02-08 15:14:38
793
原创 spring cloud、gradle、父子项目、微服务框架搭建---rabbitMQ延时队列(七)
spring cloud、gradle、父子项目、微服务框架搭建---rabbitMQ延时队列
2023-01-12 14:57:33
637
原创 spring cloud、gradle、父子项目、微服务框架搭建---配置spring-cloud-stream,rabbitMQ(六)
配置spring-cloud-stream,rabbitMQ
2023-01-11 16:52:39
570
原创 spring cloud、gradle、父子项目、微服务框架搭建---配置Redis,引入StringRedisTemplate(五)
spring cloud、gradle、父子项目、微服务框架搭建---配置Redis,引入StringRedisTemplate
2023-01-09 11:44:56
604
原创 spring cloud、gradle、父子项目、微服务框架搭建---引入MyBatis-Plus(四)
spring cloud、gradle、父子项目、微服务框架搭建---引入MyBatis-Plus
2022-12-29 11:50:33
1102
原创 spring cloud、gradle、父子项目、微服务框架搭建---微服务相互之间的接口调用,openfeign的使用(三)
多个微服务使用feign功能来简化相互之间调用过程
2022-10-17 15:39:43
1305
1
原创 AES AES/CBC/PKCS5Padding模式 128位秘钥长度和向量长度
AES是一种对称加密技术 即加密密钥和解密密钥相同在密码学中又称Rijndael加密法,AES/CBC/PKCS5Padding模式,128位秘钥长度和向量长度
2022-09-13 11:49:02
10025
2
原创 树、二叉树、斜树、满二叉树、完全二叉树、二叉排序树、平衡二叉搜索树(AVL树) 、哈夫曼树(Huffman tree)、B树、B+Tree、B*树
树、二叉树、斜树、满二叉树、完全二叉树、二叉排序树、平衡二叉搜索树(AVL树) 、哈夫曼树(Huffman tree)、B树、B+Tree、B*树
2022-09-06 15:15:21
1023
原创 TransactionSynchronizationManager 事务同步管理器 TransactionSynchronizationAdapter afterCommit 的用法
TransactionSynchronizationManager 事务同步管理器 TransactionSynchronizationAdapter afterCommit 的用法
2022-09-02 14:03:03
2341
原创 StringRedisTemplate、opsForValue、setIfAbsent、setIfPresent、getAndSet、increment、decrement用法
StringRedisTemplate、opsForValue、setIfAbsent、setIfPresent、getAndSet、increment、decrement用法
2022-08-09 16:51:29
5075
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人