- 博客(13)
- 收藏
- 关注
原创 导出200万数据到Excel(EasyExcel)
大容量Excel导出方案对比与优化 本文对比了5种大数据量Excel导出方案,重点分析内存占用与性能表现。最优方案为分批查询+分批写入,配合缓冲流优化: 方案对比:从一次性全量导出(OOM风险)到分批查询+分批写入(内存峰值仅390MB),逐步优化内存使用 性能数据:分批查询方案总耗时127秒,内存峰值390MB;游标查询方案进一步优化至91秒,内存峰值400MB 实现示例:提供了基于EasyExcel的代码实现,包含缓冲流优化(2MB缓冲区)、多Sheet支持和分批写入策略 关键优化:使用Buffered
2025-10-14 11:46:21
337
原创 使用 spring-ai 的流式输出时抛出 403 权限不足Access Denied
摘要:使用Spring AI的流式输出时出现403权限不足错误,原因是Spring Security默认不拦截异步请求(如SSE)。解决方案是在安全配置中明确放行异步请求,即在SecurityFilterChain中添加.dispatcherTypeMatchers(DispatcherType.ASYNC).permitAll(),从而允许流式响应通过权限校验。
2025-09-17 14:21:02
276
原创 Java三行情书
《代码里的心碎:程序员式爱而不得》用五种编程隐喻描绘单恋:如同死锁的等待、未实现的接口、引发崩溃的空指针、被擦除的泛型爱情、永远为假的断言。每段三行情书配合代码注释,展现用try-catch藏起心碎、编译失败当爱情日志的苦涩。技术术语化作情感密码,揭示当代人用代码逻辑包裹的脆弱内核——越是精确的语法,越暴露无法调试的悲伤。
2025-08-29 13:40:35
329
原创 并发场景下Redis缓存旧数据问题
本文探讨了Redis缓存一致性问题及其两种解决方案。核心问题在于高并发场景下,旧数据可能回填覆盖缓存更新。方案一采用读写锁机制(ReentrantReadWriteLock),通过双重检查保证一致性,但存在性能开销;方案二使用延迟双删策略,先删缓存再更新数据库并延迟二次删除,实现简单但依赖时间控制。对比显示,读写锁适用于强一致性要求的场景,而延迟双删更适合读多写少、对一致性容忍度高的业务。两种方案各有优劣,需根据具体业务场景选择。
2025-07-18 09:25:43
418
原创 springboot集成消息队列(不使用中间件)
消息队列(Message Queue)是一种应用程序间异步通讯或数据传输的方法,允许应用程序发送和接收消息,无需进行直接连接。使用消息队列的目的是为了实现解耦、增强异步处理能力、提高系统的可拓展性。
2024-06-25 09:36:56
2206
1
原创 SpringBoot集成RabbitMQ
实现一个能够有效降低AI识别服务器负载的系统。该服务器当前面临显著的处理压力。引入RabbitMQ消息队列机制,分散并管理进入服务器的任务流。
2024-06-24 11:04:24
435
原创 @Configuration和@Bean注解的关系以及使用细节
先了解Spring管理Bean的基础知识:Spring框架是建立在控制反转(IoC)模式之上,“控制反转”是说创建对象的控制权交给了spring容器,我们只需要在需要的地方声明依赖即可。要想让Spring容器管理你的Bean,你需要告诉它你的Bean在哪里,以及如何创建这些Bean,这就是配置Spring的过程。
2024-05-29 14:08:11
1032
原创 接口性能优化(数据库篇)
只有在真正需要数据时,才进行数据库查询和数据加载,这样可以有效节约资源,提升系统的响应速度。 今天在进行报表查询操作时,我发现原先的 SQL 查询需要大约 3 秒的时间,这个速度在可接受的范围内。但是,当新需求需要增加更多的详细查询条件时,查询的表数据量增加了几倍,这导致了查询条件增加后 SQL 的查询时间扩大到了 13 秒。应尽可能的减少数据库操作的次数,对于需要执行的多条查询语句,可以使用批处理(例如MybaitsPlus的。另外,如果有大量重复的数据库查询,应考虑使用查询结果缓存来避免重复访问。
2024-05-07 15:11:05
388
原创 Oracle踩坑:SQLSyntaxErrorException: ORA-01788: 此查询块中要求 CONNECT BY 子句
java.sql.SQLSyntaxErrorException: ORA-01788: 此查询块中要求 CONNECT BY 子句
2024-04-30 15:15:33
1065
1
原创 面向切面编程AOP的简单使用
Pointcut(“@annotation(com.easyway.modules.tc.annotation.RestLog)”) : 定义切点(设置切点为使用@RestLog注解的位置)@Component@Slf4j@Autowiredlog.info("AOP切面---插入日志");try {//获取切面方法执行完毕的返回参数throw e;= null) {// 保存到数据库。
2024-03-29 11:49:23
555
1
原创 软件设计模式-策略模式的简单使用
策略模式是一种行为设计模式,是23种软件设计模式之一,它允许在运行时选择算法的行为。通过定义一系列的算法,将它们各自封装成策略(Strategy)类,并使它们可以互相替换,策略模式让算法独立于使用它们的客户端而变化,从而能够方便地切换算法或策略。
2024-03-29 11:41:50
298
1
oracle12连接所需驱动,navicat连接oracle"oracle admin net error"错误
2024-05-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅