java

Java 枚举使用 Jackson Json 序列化与反序列化

我最近遇到一个问题,Jackson Json 无法正常反序列化枚举类,尽管同一个枚举可以正常序列化。我查阅了一些资料并写下了这篇总结。 问题 enum Type { A( 11 ), B( 22 ); @JsonValue public final int code; Type(int code) { this.code = code; } } 上述枚举类可以正常序列化,序列化的结果是 code 字段的值: objec…

一个 Bug 给公司带来20000多损失

最近连续两个月代码出问题,给公司带来了损失,第一次是2000多,第二次直接20000多,这里来做一次总结。 问题 咱们的发布流程是 测试->预发->生产,这样子三个环境,代码到生产环境的时候会检查是否到预发环境。出问题的是Spring的一个定时任务,改了一个和钱有关的比例后按照流程发布上线,过了几天发现有些金额不对,排查后发现多了一个环境[预发2],这个环境和生产环境是共用数据库的,这个环境是为了一些需要生产数据的测试,但是这个当时没人维护了,导致代码落后生产,定时任务执行了原来的逻辑…

Spring Scheduled 三种定时方式

前面出了 一个20000+元的 Bug ,现在来认真的看看 Spring Schedule 是如何处理定时任务的。 Spring Schedule 配置时间的三种方式 fixRate: 间隔时间,会根据首次执行时间预先安排固定的时间,错过立即执行 fixDelay: 间隔时间,上次结束时间后多少间隔后执行 cron: 指定具体时间,错过立即执行 fixRate 运行方式 fixRate 是会根据开始时间预先安排一系列的固定时间点,如果错过了安排的时间点,则立即执行,否则等待下一个执行时间点,如下图…

Spring Data Jpa 多数据源选择无效

有个项目用的 Spring Data Jpa ,里面需要多数据源来做分库,正常流程是拦截器拿出用户信息,然后把分库信息设置到 ThreadLocal 里,后面使用就没问题了。但最近遇到个问题,在 Service 层重新分库信息居然没用,依然会使用首次获取到的数据库连接。 项目里其实有类似的用发,同一个线程重新设置了分库信息也依然可以正确选中,直接使用 JdbcTemplate 查询也没问题,So,到底什么问题呢? 还是对这套东西不熟悉, OpenEntityManagerInViewInterc…

HikariPool-1 – Connection is not available, request timed out after 30000ms 问题解决

问题 最近将一个项目的 SpringBoot 1.xx 升级到了 SpringBoot 2.xx,顺便把 JDK 也升级到了 15,测试了下没什么问题就发到了生产,但今天项目报错了, HikariPool-1 – Connection is not available, request timed out after 30000ms ,而且很快系统就被拖垮了,具体的一些错误如下: org.springframework.dao.DataAccessResourceFailureException:…

maven获取不到jar包

今天遇到一个 maven 的问题,构建一个项目的时候忘记把一个依赖的 jar 包发布到仓库,然后构建失败,问题在于把依赖的 jar 包发布到仓库后还是构建失败,说无法获取到 jar 包,报的错误如下: [ERROR] Failed to execute goal on project xxx-xxx: Could not resolve dependencies for project com.example:xxx-xxx:jar: 1.10 .2 - RELEASE : Fai…

Spring Cloud Stream 初尝

公司里目前用的是RocketMQ,用的过程中遇到一些问题,逐渐将一些业务转到 kafka 上,正好目前项目是spring boot项目,所以就来试试 spring cloud stream,本地环境有 rabbitmq,所以使用它了。 依赖 <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifa…

spring transaction不生效的一些原因

同一个类中一个方法调用的另一个有事务的方法 在spring的声明式注解中,如果直接调用的方法不包含 Transactional 注解,那么即使这个方法里面调用的其他方法包含注解,那么事务也是不会生效的,例如下面的这段代码: class AImpl implements A { @Override public void update() { doSomething(); } @Transactional @Override …

mycat事务超时

问题 项目里面使用的是 mycat 进行分库分表,但在最近一个系统更新后出现数据库事务锁超时的问题,如下面的错误: Caused by: java.sql.SQLException: Lock wait timeout exceeded; try restarting transaction 分析 先在网上搜索了一下之后,发现大多数说的都不是什么好的解决方案,手动kill掉事务,把事务超时时间加长,这些对我现在这个项目都不实际,还是自己分析吧。 对数据库的配置检查了一番,没什么问…

Mybatis example

这篇文章主要是一个基本的例子,分为两个部分, mybatis独立的配置 和 mybatis-spring配置 项目的最终地址在这里: https://github.com/shellj/mybatis-example Mybatis单独的配置 根据官方的例子进行配置 http://www.mybatis.org/mybatis-3/zh/getting-started.html 新建maven项目 添加依赖,目前需要的依赖包如下: <dependencies> …

随笔

奇怪的一个东西,之前弄syntaxhighlight一直没有成功,今天又来弄,还是高亮不了,不知到是什么问题。求教高手。 1 2 3 4 5 public   class   Test{      public   static   void   main(String[] args){          System.out.println( "hello-world" );      } }     上班时间是…

加载更多博文
未找到任何结果