- 博客(140)
- 资源 (7)
- 收藏
- 关注
原创 @Async 同一个service是否生效
在 Spring 框架中,@Async注解用于实现异步方法调用。下面详细分析在同一个Service类中@Async是否生效的问题。
2025-02-26 09:01:33
275
原创 深入理解 MySQL 中 FIND_IN_SET 函数在查询中的应用
我们有一个名为test_menu的表,用于存储菜单信息。id:菜单的唯一标识,自增长。name:菜单的名称。parent_id:父菜单的 ID,用于表示菜单的层级关系。path:存储该菜单到根菜单的路径,以某种方式编码,这里可能是包含各级菜单id的字符串,以逗号分隔。
2025-01-15 09:55:46
658
原创 Java Map介绍及实现原理
是一个接口,用于存储键值对(key-value pairs)。它提供了一系列方法来操作键值对,如添加、获取、删除等。的主要特点是可以根据键快速查找对应的值,非常适合需要通过特定标识来访问数据的场景。
2024-11-08 08:50:46
362
原创 使用 EasyExcel 相邻数据相同时行和列的合并,包括动态表头、数据
在处理 Excel 文件时,经常会遇到需要对表格中的某些单元格进行合并的情况,例如合并相同的行或列。Apache POI 是一个强大的工具,但它使用起来相对复杂。相比之下,EasyExcel 是一个基于 Apache POI 的轻量级 Excel 处理库,它提供了更简单易用的 API,使得处理 Excel 文件变得更加方便。本文将介绍如何使用 EasyExcel 进行列和列的合并,并提供一个完整的示例代码。通过上述步骤,我们成功地使用 EasyExcel 实现了 Excel 文件中行和列的合并。
2024-10-17 11:42:02
1768
原创 Java List 的介绍与实现原理
在 Java 中,List是一种有序集合,允许重复的元素。它是 Java Collections Framework 的一部分,提供了一种便捷的方式来存储和操作线性数据。常见的实现类包括ArrayListLinkedList和Vector。Java 的List接口及其实现类提供了灵活有效的方式来存储和管理有序元素。根据不同的需求,可以选择合适的实现类,如ArrayList用于快速访问,LinkedList用于频繁插入和删除,而Vector则在需要线程安全的场合使用。
2024-10-10 16:20:51
777
原创 Java Set 的介绍与实现原理
在 Java 中,Set是一种集合类型,它不允许重复的元素。Set接口是 Java Collections Framework 的一部分,主要用于存储不重复的值。常见的实现类包括HashSet和TreeSet。Java 的Set接口及其实现类提供了灵活有效地存储和管理不重复元素的方式。根据场景的不同,可以选择合适的实现类,如HashSet用于一般的去重需求,用于保持插入顺序,TreeSet用于自动排序。通过这些集合类,开发者可以更高效地处理数据。
2024-10-09 18:04:51
496
原创 excel 单元格嵌入图片
这样的话,图片就会嵌入到单元格,也会跟着单元格的大小而改变。2.属性 随单元格改为位置和大小。1.图片右键,设置图片格式。
2024-10-09 16:32:39
1222
原创 使用 MyBatis 进行批量更新
通过本文的介绍,我们学习了如何使用 MyBatis 的 XML 配置进行批量更新。MyBatis 提供了强大的功能和灵活的配置方式,使得批量操作数据库变得非常简单。希望这篇文章对大家有所帮助!
2024-09-25 18:26:48
1344
原创 使用 Spring Boot 和 EasyExcel 进行动态表头导出 Excel
通过本文的介绍,我们学习了如何使用 Spring Boot 和 EasyExcel 进行动态表头的 Excel 导出。EasyExcel 提供了强大的功能和简洁的 API,使得 Excel 导出变得非常简单。希望这篇文章对大家有所帮助!
2024-09-25 18:18:58
727
原创 深入探讨 MyBatis 的一级缓存与二级缓存机制
一级缓存是 MyBatis 的本地缓存,也称为 SQL 会话缓存。它的作用范围仅限于一个SqlSession实例,缓存的生命周期与SqlSession一致。也就是说,当SqlSession被创建时,一级缓存被初始化;当SqlSession关闭时,一级缓存被清空。二级缓存是跨SqlSession实例的缓存,作用范围是一个Mapper映射文件的命名空间。它的生命周期与一致。二级缓存通常配置为全局缓存,能够缓存不同SqlSession之间的查询结果。MyBatis 的一级缓存和二级缓存机制是提升性能的重要手段。
2024-08-30 13:12:54
806
原创 Spring Boot 多数据源配置
通过以上配置,您可以在 Spring Boot 项目中成功实现多数据源的管理,分离不同的数据库操作。这样可以轻松处理不同数据源之间的事务以及数据交互,确保应用的高效性和可扩展性。
2024-08-22 11:13:11
5740
原创 spring 不同service事务如何传递
在Spring中,事务管理是基于代理的,默认情况下事务管理器会在一个service类的方法上创建事务边界。如果两个不同的service方法在同一个事务上下文中被调用,一个service的方法回滚会影响另一个service的方法,具体取决于事务的传播级别。,并且它们在同一个事务上下文中被调用,那么如果其中一个方法回滚,整个事务都会回滚。所以,不同service之间的事务是否会相互影响,主要取决于它们使用的事务传播级别。,它将启动一个新的事务,并且它的回滚不会影响第一个事务。在一个新的事务中执行。
2024-07-31 08:50:57
476
原创 使用Spring Boot生成并下载包含下拉多选功能的Excel模板
使用EasyExcel读取模板,并结合Apache POI设置下拉选项。然后,通过Spring Boot控制器生成并下载Excel文件。首先,需要在Excel中创建一个包含下拉多选的模板,并保存为.xlsm格式。文件中添加EasyExcel。
2024-07-05 17:52:20
896
原创 Redis 五种基本数据类型及场景
在Spring Boot中通过RedisTemplate或StringRedisTemplate可以轻松操作Redis的五种基本类型。根据具体的业务需求选择合适的数据类型来存储和管理数据是使用Redis的关键。
2024-06-17 10:05:46
469
原创 解决nginx无法获取带下划线的header值
问题描述:因为项目用到了xxl,需要header为xxl_sso_sessionid的值,本地没有问题,放到服务器上,nginx却无法获取到。NGINX 默认会将所有包含连字符(-)的请求头转换为下划线(_)格式。这是为了符合一些系统的命名规则,因为环境变量通常不允许连字符。要在 NGINX 中直接使用包含连字符的请求头,需要进行一些特殊配置。可以使用指令来禁用这种行为,从而保留原始的连字符格式。
2024-06-06 09:58:53
999
原创 使用 Feign 客户端时,处理状态码不是 200异常处理
注意: 可以在decode方法抛出业务异常,返回信息从response body获取@Overridetry {= null) {// 处理读取响应体时的异常default:// 自定义异常类@Bean。
2024-05-22 18:00:46
660
转载 浅析五种最常用的Java加密算法,以后可以直接拿来用了
关于加密这个问题不管是工作中还是面试中都会被提及,也必须要掌握。不要求加密的代码能手写,但是要知道每种加密算法是干什么的,是什么样的效果。
2024-05-09 09:00:08
289
原创 == equals区别
equals 默认情况下是引用比较,只是很多类重新了 equals 方法,比如 String、Integer 等把它变成了值比较,所以一般情况下 equals 比较的是值是否相等。对于基本类型来说是值比较,对于引用类型来说是比较的是引用。Integer Long等包装类型。大于等于128引用比较。
2024-04-26 09:33:10
266
原创 git cherry pick merge部分提交
1. git history 选择要从哪个分支merge。cherry pick merge 指定某次提交。2. 找到提交记录,选择cherry pick。3.这个时候就可以直接push了。
2024-03-25 10:24:56
492
1
转载 CentOS 7 yum 安装 Nginx
在这里你可以改变设置用户运行Nginx守护程序进程一样,和工作进程的数量得到了Nginx正在运行,等等。如果一切进展顺利的话,现在你可以通过你的域名或IP来访问你的Web页面来预览一下Nginx的默认页面;如果看到这个页面,那么说明你的CentOS 7 中 web服务器已经正确安装。更多systemctl命令可查看《systemctl命令用法》Nginx将完成安装在你的CentOS 7 服务器中。刚安装的Nginx不会自行启动。在你的CentOS 7 服务器中使用。自定义Nginx站点配置文件存放目录。
2023-12-27 17:35:38
116
原创 redis知识总结
Redis是一个开源的内存数据存储系统,也是一个高性能的键值存储数据库。它支持多种数据结构,包括字符串、哈希表、列表、集合以及有序集合。Redis的特点是快速、灵活和可扩展。首先,Redis是一个内存数据存储系统,这意味着它将所有数据存储在内存中,因此具有非常快的读写速度。相比于传统的磁盘存储系统,Redis可以提供非常低的读写延迟,使得它非常适合需要快速响应的应用场景,如缓存、实时计算等。其次,Redis支持多种数据结构。除了最基本的字符串类型,Redis还支持哈希表、列表、集合和有序集合等数据结构。
2023-10-13 10:54:51
484
原创 事务提交后,异步执行
2.同一个类的不同方法,A方法没有@Transactional,B方法有@Transactional,A调用B方法,事务不起作用。原理:spring 在扫描bean的时候会扫描方法上是否包含@Transactional注解,如果包含,spring会为这个bean动态地生成一个子类(即代理类,proxy),代理类是继承原来那个bean的。1. @Transactional和@Async的不生效的问题,同一个类 @Async不生效,导致子方法回滚,主方法也会回滚。2. 异步执行方法,需要不同的service。
2023-08-09 08:56:23
437
原创 hutool TreeUtil 排序
1. TestTreeNode 设置order。TreeNode 是集成hutool的TreeNode。TreeUtil生成的树默认是无序的,如果想排序,需要设置权重。2. 设置排序 setWeight。
2023-08-03 16:39:22
1670
原创 threadLocal如何支持线程池获取
ThreadLocal默认不支持子线程获取,而InheritableThreadLocal支持子线程获取threadLocal值,但是如果使用线程池,核心个数为1则子线程会获取到上一个threadLocal的值。1.引入transmittable-thread-local jar。3. Executor bean,使用TtlExecutor。2. threadLocal 初始化。
2023-07-27 17:27:36
319
原创 mybatis sql 参数自动填充
如果参数少还行,多了的话一不小心参数就会填充错误。后面发现mybatis log插件可以自动填充,不需要添加任何配置。1. 安装插件,搜索Mybatis Log Plugin。这样自动就生成了可执行sql了,提高了开发效率。2. 选中sql右键。
2023-07-20 13:27:32
853
原创 院落-不甘平凡
院子里,两边椅子,靠着墙,吃着瓜子聊着天。还有晒着太阳,懒洋洋的感觉,喜欢这种惬意的生活。(先说些废话,和这篇主题没啥关系,听的这首歌叫活着。今年真是前所未有的大环境,活着确实不易)奋斗是为了什么,也不用考虑那么深,普普通通一个人,不是为了实现自己的价值,太大。也就是为了有个稳定的家,那我为什么还不回老家呢,既然结果和奋斗的目标都是回去住个院子。说来说去又说到不甘心,阿刁,不甘...
2023-07-04 09:27:21
121
原创 java文件夹上传,保留文件夹结构
需要设置 webkitdirectory enctype = multipart/form-data。前端上传文件夹,可以把文件以及所在文件所在文件夹信息传到后端。需求: 产品要求可以上传文件夹,文件夹下包含其他文件夹。service impl 代码。5. github代码地址。service 代码。
2023-07-03 17:35:35
1031
原创 解决Unable to init enough connections amount! Only 21 of 24 were initialized
官方回复是网络问题。降低了idle出现错误的概率降低了很多。
2023-06-20 15:24:32
1347
1
spring cloud 配置中心自动刷新
2018-05-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人