自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 使用redis实现分布式锁功能

分布式锁是一种在分布式系统中协调多个节点访问共享资源的机制,意思就是说不管这些节点是部署的相同服务还是不同服务只要共用了某个数据就需要使用锁防止数据被多节点同时修改,那么防止共享数据被修改就必须用分布式锁吗?代码里用线程模仿进程来测试redis实现分布式锁。其中通过setIfAbsent方法来进行加锁设置,通过setIfPresent方法来给锁续期防止任务未执行完锁就失效了。这里需要注意的是:01和02行加入后子线程中的setIfAbsent和setIfPresent方法才会生效。

2025-06-21 21:51:39 166

原创 策略模式实现不同支付模式

当支付时可能会出现不同的支付方式,平时都是使用if...else...语句实现,这样存在着不好的地方就是没当有新的支付方式出现时需要新增if语句,使用策略模式可以避免这种情况。01行代码中paycontext中的结构为<bean名称,bean实例对象>,后续代码通过bean名称即可获得对应bean实例对象,bean名称一般是类名首字母小写。这种方式核心是获取到bean实例,在spring框架中获取到bean实例就可以对这个bean中的方法参数做各种操作了。获取spring中bean的方法可以参考(

2025-06-21 21:47:02 197

原创 使用多线程导出excel时可能的问题

这里涉及到了子线程和主线程的执行顺序,有兴趣的可以csdn查找下,顺便说下,在多线程下开启spring事务时也要考虑到主线程和子线程的顺序问题,一般开发中不会这样new线程多是使用线程池来开启多线程,例中只是为了方便理解。此时发现数据是不完整的,这是为什么呢?执行代码后得到的excel内容入下。导入apachepoi依赖。执行后导出excel内容为。代码运行后输出结果为。

2025-06-12 22:17:19 241

原创 SpringBoot Externalized Configuration

RandomValuePropertySource的使用详情查看org.springframework.boot.env.RandomValuePropertySource 在配置文件src/main/resources/config/db.properties中添加一个随机变量,如下;package org.springframework.boot.autoconfigure.jdbc.DataSourceProperties使用@ConfigurationProperties注解。

2025-06-08 13:45:04 603

原创 XXXXX.jar中没有主清单属性。<skip>true</skip>

然后启动,提示democonfig-0.0.1-SNAPSHOT.jar中没有主清单属性。当使用springboot构建项目是添加01标签,然后进行打包后(skip中文意思是忽略)重新启动服务,服务启动成功。注释掉01行标签重新打包。

2025-06-07 22:21:35 150

原创 elasticsearch中的Metadata fields(元数据)

每个document都有与之关联的Metadata fields(元数据字段),例如_index和_id元数据字段。当创建mapping(映射)时,可以自定义这些元数据字段的行为。

2025-05-15 21:09:49 407

原创 spring使用@Transactional注解在多线程情况下无法作用到子线程原因和解决方法

spring使用@Transactional注解时开启事务功能,事务是和数据源连接绑定的,数据源连接是和线程绑定的,在多线程情况下,@Transactional注解的事务是和主线程绑定的,那么想要主线程下的子线程和主线程在同一个事务下,那么把子线程共用主线程的数据库连接就可以解决子线程事务和主线程事务不一致的问题。然而这么做的话主线程和子线程将共用一个连接去操作数据库,这相比较与主线程和子线程分别用不同的连接去操作数据库在性能上是不是会差些,那么可不可以实现不同的数据库连接也可以实现事务操作呢?

2025-05-13 20:30:39 200

原创 多线程使用wait方法时存在虚假唤醒的理解

多线程情况下使用wait方法使线程进入等待,使用if判断会出现虚假唤醒,这和锁重入后if判断在上一次线程获取了锁之后已经执行过一次if判断了,本次将唤醒wait方法直接进行下面的代码,然而实际数值还不符合逻辑上。判断符合执行下面逻辑的情况,这个是本质原因。可以使用while循环让。每次获取锁后都继续判断一次。大概是这种原因,细节后续补充。

2025-05-13 20:18:42 91

空空如也

空空如也

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

TA关注的人

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