自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(5)
  • 收藏
  • 关注

原创 借助CountDownLatch实现多线程事务回滚

CountDownLatch是一个同步工具类,用来协调多个线程之间的同步,或者说起到线程之间的通信。计数器初始值为线程的数量。当计数器的值为0时,表示所有的线程都已经完成一些任务,然后在CountDownLatch上等待的线程就可以恢复执行接下来的任务。在使用多线程同时执行多个事务时,有时几个事务之间有着关联关系,即要么都成功要么都失败,在这种情况下,只是单纯的基于注解@Transactional是无法实现,因此当需要某个子线程事务失败了,其它相关的子线程也都需要回滚事务,下面用简单例子说明使用方式。

2024-01-24 11:43:22 631 1

原创 使用Java责任链模式优雅实现多级审批

使用责任链解决这类问题代码的可读性和可维护性都很高,后期需要插入审批直接维护枚举类即可,像权限控制、过滤器拦截器这些都是可以用这种方式实现,最后还是要提醒一下:也不要为了使用而使用,结合业务场景选择,如果本身业务就不复杂强行使用这个模式反而适得其反,给自己增加工作量。

2024-01-23 16:16:44 1381 1

原创 关于使用Arrays.asList和ArrayList.subList所踩的坑

修改原集合结构再使用子集合会抛异常修改子集合结构原集合也会随之修改,追加元素的位置取决于toIndex修改原集合的元素会影响子集合,修改子集合元素会影响原集合。

2024-01-22 19:33:19 2029

原创 巧用Java策略模式取代 if else

策略模式可以将分类细分到不同的类进行处理,有较高代码可读性和可维护性,但也不是所有场景都适用,对于一些简单的分支处理,使用 if else 就完全可以解决,这种情况下强行使用策略模式反而适得其反,增加的工作量,所以还是需要结合业务场景做选择。

2024-01-22 16:02:08 1070 2

原创 SpringEvent-轻量级内部组件解耦神器

SpringEvent多个监听者是根据数据类型分类的,需要使用多个监听者,则应该使用不同类型的数据发送和监听,如果有相同数据类型的监听者,那么这些监听者都将会接收到事件。// 监听者log.info("事件处理1:{}", event);log.info("事件处理2:{}", event);// 事件发送@TesteventPublisher.publishEvent("字符串");

2024-01-22 14:53:16 373

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除