![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 71
ζั̯͡.aimζั̯͡✿
这个作者很懒,什么都没留下…
展开
-
Spring Bean 默认是单例的,如何保证并发安全?
如果还要进一步考虑到微服务或分布式服务的影响,方式 4 便不足以处理了,所以可以借助于可以共享某些信息的分布式缓存中间件如 Redis 等,这样即可保证同一种服务的不同服务实例都拥有同一份共享信息(如当前运行中的任务列表等这类变量)。对象,并对此成员变量的值进行修改操作,因此会互相影响,无法达到并发安全(不同于线程隔离的概念,后面会解释到)的效果。有人说,单例 Bean 的成员变量这么麻烦,能不用成员变量就尽量避免这么用,在业务允许的条件下,将成员变量替换为。这种方式自然是最恰当的,本人也是最推荐。原创 2022-08-22 09:08:39 · 254 阅读 · 0 评论 -
Spring Boot 实现接口幂等性的 4 种方案
幂等性是开发当中很常见也很重要的一个需求,尤其是支付、订单等与金钱挂钩的服务,保证接口幂等性尤其重要。在实际开发中,我们需要针对不同的业务场景我们需要灵活的选择幂等性的实现方式对于下单等存在唯一主键的,可以使用“唯一主键方案”的方式实现。对于更新订单状态等相关的更新场景操作,使用“乐观锁方案”实现更为简单。对于上下游这种,下游请求上游,上游服务可以使用“下游传递唯一序列号方案”更为合理。方案名称适用方法实现复杂度方案缺点数据库唯一主键插入操作删除操作简单-只能用于插入操作;...原创 2022-07-29 14:01:19 · 161 阅读 · 0 评论 -
Spring Boot 内置工具类
断言 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 //要求参数object必须为非空(NotNull),否则抛出异常,不予放行//参数 message 参数用于定制异常信息。voidnotNull(Objectobject,Stringmessage)//要求参数...原创 2022-05-23 09:04:52 · 170 阅读 · 0 评论