软知识
文章平均质量分 75
头发还长的程序员
这个作者很懒,什么都没留下…
展开
-
spring事务方法的同步问题
一、事务方法的同步问题例如以下这段代码 @RequestMapping("/test") @Transactional public int test(){ Test test = testMapper.selectById(1); int max = test.getMax() + 1; test.setMax(max); testMapper.updateById(test); return原创 2021-02-08 17:18:49 · 1281 阅读 · 0 评论 -
springboot日志按级别按天并且按大小切割
一、简介为了方便查询问题,将日志按info、error级别等输出到日志文件。若是用一个文件来存储所有的日志,那么这个文件会越来越大,不利于我们查询日志。所以这里我们将日志按日期存储,每天都会创建一个对应日期的文件夹来存放当天的日志文件。并且为了不让日志文件太大,影响我们查询,因此在日期文件夹中还需要按大小来切割成多个日志文件存放。将springboot项目打包成jar包运行,日志的配置依然有效。使用java -jar demo.jar运行jar包,日志会输出到设置的目录中。..原创 2021-01-05 18:30:46 · 4148 阅读 · 0 评论 -
mysql数据库查询事务并杀死,解决死锁问题
mysql数据库查询锁等待事务并杀死例如:程序由于某种特殊情况导致死循环,事务一直完成不了,这时候其他事务只能排队等待,此时会出现锁表等问题。可以通过将事务杀死解决锁表问题。之后再排查程序问题。1、查询SELECT * FROM information_schema.INNODB_TRX;图中trx_state字段值为LOCK WAIT,说明这个事务是在排队等待锁;如果值为RUNNING,则说明是在运行中,若是这个事务一直在运行中,说明这个事务出了问题,把这个事务杀..原创 2020-12-23 11:21:58 · 1005 阅读 · 0 评论 -
手动抛出异常回滚事务,且返回数据给前端
一、简介有时候会遇到需要手动抛出异常来回滚事务的情况,一般抛出异常后显示的是500服务器错误,如果想要返回json数据给前端的话,就可以用自定义异常类+全局异常捕捉。二、自定义异常类这里只定义了code码和msg消息,可以根据需要进行改造。public class CommonException extends RuntimeException { private int code; private String msg; public CommonExce.原创 2020-09-04 10:12:52 · 2729 阅读 · 6 评论 -
SimpleDateFormat线程安全问题与解决
一、简介SimpleDateFormat类内部有一个Calendar对象引用,如下图:SimpleDateFormat类的parse方法中,使用了Calendar的clear方法等,如下图:当我们编写DateUtil工具类时,可能会将SimpleDateFormat设置为static的,那么在并发的情况下线程共享同一个calendar,可能会出现问题。二、解决办法①去掉static,这样每次用到SimpleDateForm...原创 2020-08-10 16:22:17 · 229 阅读 · 0 评论