我们以Thymeleaf页面模板引擎为例,简单介绍利用 apache fileupload 工具实现文件上传的功能。2.1、添加相关依赖包首先创建一个基础的 Spring Boot 项目,并引入相关的依赖包。2.2、添加相关配置参数2.3、文件上传示例对应文件上传的Controller类,示例如下:import org.apache.commons.fileupload.FileItem; imp
打开公司群,就看见群里有人讨论:线上环境出现大量RPC请求报错,异常原因:被线程池拒绝。虽然异常量很大,但是异常服务非核心服务,属于系统旁路,服务于数据核对任务,即使有大量异常,也没有实际的影响。原来有人在线上刷数据,产生了大量 binlog,数据核对任务的请求量大幅上涨,导致线程池被打满。第二天一到公司,我就迫不及待地打开各种监控大盘,开始排查问题,最后还真叫我揪出问题根源了。2. 排查过程2.
使用回调机制Callback和函数式编程码出优雅结构化代码!拒绝一直写CRUD!!!
本文我总结10 种优化 if else 的方法,当然根据不同的场景还可以使用多态、责任链模式、模板方法模式等更多方法来消除 if else。方案1:策略模式如果有 1 万个 if else 分支,那就会有 1 万个策略类,此时就会造成类膨胀,并且随着时间的推移逐渐变得更加庞大而复杂。如果是多层的 if else 嵌套,策略模式可能也无法派上用场了。方案2:策略模式变体Map&l
SpringBoot异步接口实现:提高系统的吞吐量
那些依赖于`!=null`的日子已经结束了
我司使用了两年的高效日志打印工具,非常牛逼!
将泛型和函数式编程结合,竟然会让代码这么优雅!
如何优雅的使用Optional类?
使用 RestTemplate 发送http请求的正确姿势原来是这样的!
别急,用这招 SpringBoot 技巧轻松搞定!
1 策略模式支付方式有:微信,支付宝,银联等。定义策略接口public interface PaymentStrategy { void pay(double amount) ; }实现不同支付方式// 微信支付 @Component public class WeiXinPayment implements PaymentStrategy { @Override public voi
1 结论结论先行:事务+MQ的使用场景,使用方式一定得正确,稍有不慎,可能就会带来数据不一致问题。2 问题背景及现象3 排查过程3.1 初次分析发现问题,及时修复,加完锁上线,以为问题修复了,结果高兴太早了。3.2 问题再次出现3.2.1 分析思路一3.2.2 分析思路二3.2.3 分析思路三b.updateCostSuccess接口里,其实包含了三步操作,执行完后,还处于大事务中,事务并未提交,
现在开始讲讲我在工作中遇到的超百万数据的导入导出解决方案:想要解决问题我们首先要明白自己遇到的问题是什么?1、 我遇到的数据量超级大,使用传统的POI方式来完成导入导出很明显会内存溢出,并且效率会非常低;2、 数据量大直接使用select * from tableName肯定不行,一下子查出来300w条数据肯定会很慢;3、 300w 数据导出到Excel时肯定不能都写在一个Sheet中,这样效率会
一个注解轻松搞定审计日志服务!
EasyExcel合并单元格这样实现才是yyds
分布式链路追踪:TraceIdFilter + MDC + Skywalking
今天咱们就来聊聊在Spring事务管理中你可能踩过的坑,并教你如何规避这些陷阱。事务提交的陷阱有时,事务方法在抛出异常后没有回滚,而是被提交了。这通常是由于异常被捕获但没有显式抛出,导致Spring误以为事务正常完成。错误示例@Transactional public void processTransaction() { try { // 执行一些数据库操作
SpringBoot异步接口提高系统的吞吐量
WebSocket迷们请注意!你的集群方案来啦,火速围观!
这套轻量级的日志系统也许更适合你!
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号