Live My Life

一入Java深似海

本地打包时的一些疑问

注意一点,debug的非本工程的代码,也就是jar包中的代码,有可能不是最新的,所以有时候开发仓库没有最新包也没人打的时候,可以打本地的,切换到对应工程拉最新代码,install即可。 所以由于可能具有不一致性,所以报错如果没有蓝标,即非本工程代码,那么代码行数即使从IDEA中点进去,和实际的执行行数的内容也是对不上的。 问题 可是本地启动的工程,引本地的包应该也没错啊?为什么对不上呢?......

前端映射与MybatisPlus特殊类型(枚举)映射

我们处理后端Crud时,如果直接将前端的报文应用到数据库动态SQL拼接时,如果传入的RequestDTO某些属性使用枚举接收,那么往往容易报错。 我们知道,这样是可以映射的: 那么比如前端传入交易状态这个字段,后端是有可以使用的枚举的,直接使用DealStatusEnum接收,会发生什么? 首先,能不能接收到? 如果枚举如上图所示,invType是可以映射到枚举对象上的,原因是枚举......

Serializable接口的实际意义

在项目中我们看到实体类都实现了Serializable接口,为什么有的时候不实现也可以正常执行、返回报文呢? 原因在于该对象需不需要进行序列化(或者更准确的来说是 : 非本地传输) 注意:这里的序列化 ≠ 转Json,如果通过MVC的@RequestBody,那么会先自动把对象转为Json(String),再通过网络发送(此时是JDK自带序列化),先转成的本地Json其......

实现图表展示数据项的国际化实现方案几种方案参考

切面方案 定义注解 **InternationalizedField**: 12345678910import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotat......

前后端Controller--接收特殊类型参数问题

数组 今天在前端发送某个属性值为[]时,后端接收到的为空的ArrayList对象。 首先清楚,在MVC框架下,后端接收到什么参数,完全取决于序列化框架,原因是参数对象一定是反序列化变为对象的,而对于大多数序列化框架,规则基本是一致的,所以建议记忆。 这里Jackson的序列化规则就是[],最后被反序列化为ArrayList而不是null; 这些接收到的都是ArayList 枚举 对于前......

NIO和IO多路复用

...

实际业务例子:SWPT死锁问题

首先明确一点,SpringBoot中的隐式事务,都是在执行sql(如mapper)时创建的,属于既定规范。 方法级别管理事务(原子性) 另外有一些不熟悉的,如果sql调用触发器、使用消息队列, JTA(Java Transaction API)分布式事务 等会新开事务 默认当方法正常执行完毕时,事务会自动提交并且关闭事务,但是有时候通过DEBUG时SQL查询发现事务仍存在,未被提交,还......

AOP使用经验和基础知识总结

很简单的,五种通知类型,主要注意的是环绕通知,也就是符合切入点表达式的切入点,会根据通知内容即自定义方法自定义执行。 切面类中写着通知方法,通知方法上用注解标明其类型,当被执行的切点符合注解的表达式范围时,执行通知。 不光是记录前后日志,在执行动作前后校验权限,执行数据库操作(触发器)等等都可以使用AOP。 执行条件的限定主要取决于切入点表达式 execution:一般用于指定方法的执行......

数据库知识点小记

设置主键 MySQL设置或者后续新增主键,都需要包含主键字段为not null,否则不允许创建 Oracle后续alter增加主键,如果被设置为主键的字段没有显式设置初始not null,那么新增的主键会自动将该字段设置为not null,在创建表的时候,字段之后直接跟上primary key也是默认隐式的增加了not null约束 Case-When 使用数据库原生的判断,case w......

区块快速入门笔记

哈希:非对称加密 默克尔树:验证节点存在性 数字签名:交易私钥签名,链上用公钥验证 层级划分: BTC的几个关键点: 区块的成链特性保证了交易数据的连锁性及可溯源性,如果改动一个之前区块的数据由于和其它节点不一致也是不会被所有的节点认可的。 共识机制保证了数据的正确性,如POW是决定了谁记账,究竟对不对还是要经过广播所有节点进行验证也就是共识才能确认的,验证你的计算值是否达标并且记账......