自定义博客皮肤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)
  • 收藏
  • 关注

原创 spring源码实战应用,对外提供的starter中如何强制实现某个接口

首先讲下需求,这是最近做的一个项目,提供一个SDK让其他业务系统使用,但是因为项目内部使用了Shiro权限框架,获取用户信息的时候,定义了一个UserService接口,用户在使用我们提供的框架时,必须要实现UserService接口,所以最终需求就是,需要强制用户在自己的代码模块实现UserService接口。但是此时把@Service注解加上的话,那么就会有问题,在此启动不会报错 但是初始化方法@PostConstruct不会被执行,同时,@Autowired进行依赖注入的时候,也是为null的。

2024-04-02 14:11:03 578 1

原创 面试记录-怎么保证redis和mysql的一致性;

延时双删也是可以保证数据的最终一致性的,但是在整个事务执行的过程中,如果在并发情况下,有其他线程在第二步没有更新完mysql之前进行查询,那么查询到的依然是旧的数据,并且在更新mysql之后也要保证等待的时间要在mysql更新之后,最后再次删除redis中的数据。这个方案在不考虑特殊情况下可以保证数据的最终一致性,但是在并发的情况下,在第二步删除redis的操作没有完成时,有另外的线程进来查询数据,那么查询到的就是旧的数据,但是优点是只需要删除一次缓存的数据。

2024-03-22 05:45:02 293 1

原创 面试记录-哪种Map可以存放null键值,其他的为什么不行?

而HashTable和ConcurrentMap作为安全的集合,在设计之初是要考虑到线程安全的问题,也就是说有多个线程同时对键值进行修改,那么此时在 使用contains(key)方法的时候就会出现一个歧义,到底是key为null呢,还是说根本不存在null这个key呢,这时候就产生了歧义,所以安全的集合键值都是不能为null的。也就是说作者在设计HashMap集合之初,就完全没有考虑他的安全性,默认的就是单线程执行的;其实这个问题问的是比较刁钻的,因为要从源码设计的角度去回答这个问题,

2024-03-22 05:08:30 193

原创 面试记录-springboot自定义starter

springboot中自定义starter

2024-03-01 13:26:13 800

原创 为什么要用索引覆盖

从索引角度阐述为什么在查询的时候查询列要覆盖索引

2024-01-12 12:06:28 712

空空如也

空空如也

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

TA关注的人

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