坑吧
文章平均质量分 77
专门总结分享开发过程中踩过的坑和一些经验,有时有些坑如果不知道什么原因或者没见到过可能需要花费很长时间来解决,如果收藏了就一看马上知道怎么处理了。
小灰灰-58
昨夜西风凋碧树,独上高楼,望尽天涯路。。
展开
-
线上真实案例之执行一段逻辑后报错Communications link failure
1.问题发现在开发某个项目的一个定时任务计算经销商返利的功能时,有一个返利监测的调度,如果某一天返利计算调度失败了,需要重新计算,这个监测的调度就会重新计算某天的数据。在UAT测试通过,发布生产后,发现过几天就报错了,报错日志如下:Fetched SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6d2b4a] from current transaction==> Preparing: delete from原创 2024-04-20 13:32:48 · 359 阅读 · 0 评论 -
Mybatis一级缓存有时有而有时没有的问题
1.在Mybatis执行增加、修改或者删除操作时,会清空当前的sqlSession的缓存2.如果在执行一系列查询和更新操作时,虽然在中间的某个步骤可能执行了更新操作,清空过缓存,但是要注意是不是与之前的sqlSession不一样,如果不一样,那么原来sqlSession里的缓存还在,这种情况可以从调试日志中看到比如等日志。原创 2024-03-30 10:14:36 · 664 阅读 · 0 评论 -
多线程执行一半后不往后走的坑
首先演示一个简单的场景。采用提交线程的方式,直接在多线程中执行的某个地方抛出一个异常。调用的地方:发现一直卡在那,没有任何错误日志。多线程调用的地方:发现控制台会打印错误日志了:上面是我遇到问题后,演示的一个简单例子。下面来看我遇到的真实的场景。原创 2024-03-26 21:41:38 · 379 阅读 · 0 评论 -
Spring Transactional注解失效的几种典型场景及解决办法
这个方法非常简单,只需要新加一个Service方法,把@Transactional注解加到新Service方法上,把需要事务执行的代码移到新方法中。如上,如果是在同一个类中调用被@Transactional注解的方法,那么也不会生效,因为调用的是this对象的方法,而不是代理对象的方法。事务方法add中,调用了事务方法doOtherThing,但是事务方法doOtherThing是在另外一个线程中调用的。同理,如果方法用final修饰,也是没法被动态代理的类重写的,因此注解也会失效。原创 2024-03-15 23:10:16 · 1288 阅读 · 1 评论 -
调用Mybatis plus中的saveBatch方法报找不到表的问题
也就是,我们在创建 SqlSessionFactory 时候设置的 setMapperLocations, 设置路径下的所有mapper.xml 对应的实体都会保存对应的数据库配置。表实际是存在的,且发现其他的方法都没有问题,包括save、update等单个的方法,都是正常的。在用Mybatis plus开发的项目中,用自带的API批量保存的方法saveBatch操作时,发现报没有找到表的错误。需要将其中的一个数据源对应的mapper文件映射的路径改一下,改成和另一个数据源配置的路径不同,就可以了。原创 2024-03-07 21:47:50 · 541 阅读 · 0 评论 -
IDEA中启动项目报堆内存溢出或者没有足够内存的错误
【代码】IDEA中启动项目报堆内存溢出或者没有足够内存的错误。原创 2024-01-17 22:37:10 · 1742 阅读 · 0 评论 -
IDEA无法解析jdk自带的类的解决办法
最后试了这种办法,重新选择一个项目可用的jdk,比如我这里项目需要的jdk版本是1.8,开始选择的1.8.0_291这个版本(报错的时候),现在选的是1.8.0_45这个版本,发现错误马上消失了,也不用重启IDEA。找不到,我们知道jdk自带的类是不用import包的,这里报错了,IDEA会提示你去导入类,其实这个提示也不是真正的解决办法,因为IDEA也没有这么智能,告诉你是jdk出了问题。我查看网上的资料,试过很多办法,都不行,比如清除缓存重启等,发现都不行。重新选择jdk后,之前的这些错误都消失了。原创 2024-01-11 22:16:01 · 770 阅读 · 0 评论 -
Http Post请求被强制转换为Http Get请求
2、客户端收到302之后,通过https向服务端发起了新的请求。今天在开发一个服务的时候,发现用postman造的post请求,到了服务端变成了get请求。于是打开wireshark抓包。版权声明:本文为CSDN博主「tong_master」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。大多数http客户端(包括浏览器)会将引起302的原有的post请求转化为get请求发出去(其实这是将302当做303来处理)。于是怀疑是客户端在处理302时,自动重新发起了get请求。转载 2024-01-12 22:56:12 · 157 阅读 · 0 评论