自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 解决Spring依赖循环的两种方式

就是我们都知道的通过@Autowired三级缓存来解决,具体来说也就是AB互相依赖,于是其中一个就生成实例后还未初始化放入二级缓存中,并且暴露引用。另一个用它暴露的引用来完成初始化,生成完整的bean放入一级缓存。

2025-08-12 18:53:25 166

原创 使用poi-tl以及asposewords实现通过模板循环导出表格以及将docx转为pdf

或者可以直接导入这个24.3的包和该工具类,好像也可以直接破解。导入aspose的包有两种方式,下载jar包手动通过命令导进maven,还有人说可以从aspose的私有库导到本地。选择使用1.7.3版本的poi-tl和24.3版本的asposewords。首先获取数据,想要实现循环导出表格,需要至少有两个嵌套的List循环,第一个是行或列的循环,第二个是表格的循环。安装部署好asposewords以及其工具类后,可以直接通过将渲染后的template写入字节输出流,直接使用工具类转为pdf就可以了。

2025-07-22 10:25:38 1800

原创 笔记-Spring的一些问题(持续更新)

于是将B的对象工厂放入三级缓存,此时B也需要依赖注入A,在三级缓存中查找到了创造A的lambda表达式,执行这个lambda,这时通过AOP生成A的代理对象或直接创造一个A 的实例获得A的半成品bean放入二级缓存中,也就是在二级缓存获得了A提前暴露的引用,于是依赖注入B中,B直接完成依赖注入放入一级缓存,这时在一级缓存中找到了B的实例,依赖注入A中,A完成依赖注入放入一级缓存。在日常获取bean中通过从一级缓存到三级缓存进行查找,创建bean的顺序也是从三级缓存到一级缓存,并且互斥。

2025-04-22 21:43:56 207

原创 笔记-数据库索引

b树是一种平衡查找树,几阶就代表了b树中每个节点最多能有几个子节点,比如m阶就最多就有m个节点,每个节点最多只能有m-1个键,最少要有Math.ceil(m/2)-1个键(Math.ceil向上取整),每个节点的左子节点小于这个节点,这个节点的右子节点大于这个节点。b树每个节点都包含键和值。

2025-04-22 03:38:59 588

原创 笔记-超卖问题中的乐观锁与悲观锁与分布式锁

在面试和实际解决商品超卖问题中经常会遇到乐观锁和悲观锁的问题,这里做个记录。即在对数据库进行更新前总数认为别的进程没有修改数据,通过在读取数据前记录版本号或时间戳来实现,读取结束后进行更新前检查版本号或时间戳有无修改,如果更新前发现没有改动,则进行修改操作。如果发生改动,根据需求决定是否重试操作。

2025-04-19 20:53:09 1596

原创 笔记-缓存雪崩、缓存穿透、缓存击穿

2.布隆过滤器,布隆过滤器有一个位数组,其长度根据你设置的故障率和存值数量来确定,位数组中所有值默认设为0,当往数据库中存一个数据时,会先在布隆过滤器经过三个(不一定,只是举例)哈希函数计算,计算出三个位数组上的位置,然后将这三个位置的值设为1。只有当key不存在时才会设置,返回1说明加锁成功,返回0说明key已经存在,锁在别的进程手上。但是如果比如说一个进程A设置过期时间为10s,10s之后A的锁过期,但A还没执行完,B进程获得锁,设置key为1,11sA执行完,删除锁,这时候删除的是B进程的锁。

2025-04-18 20:08:54 866 1

空空如也

空空如也

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

TA关注的人

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