背景 在维护公司一个老项目时,出于方便的考虑,准备在项目中引入Mybatis-plus作为持久层,那么这就涉及到新老代码共存的问题。随后由于该项目是一个数据产品相关项目,有一个日志模块会记录用户的调用记录,该日志数据落库在MySQL现已存储8kw+数据,已经不堪重负了,同时产品同学期望完善一下这块的
mybatis中Mapper传参问题 传递单值 不带If判空处理的 //DAO List<SystemIndustry> findALlResult(String industryId); //XML <select id="findALlResult" resultMap="SystemIndus
Lambda表达式 ()->{} 通过接口函数来简化匿名内部类的写法,如下。 /**<h1>无参写法</h1>*/ //jdk7 写法 new Thread(new Runnable() { @Override public void run() { System.o
HashMap中put方法分析 put方法 public V put(K key, V value) { return putVal(hash(key), key, value, false, true); } hash方法 static final int
继承Thread类 public class ExtendsThreadDemo extends Thread{ @Override public void run() { System.out.println("通过继承的方式实现多线程!!!"); } }
synchronized 相关思考 前言 最近又重新过了一遍 synchronized,发现自己之前对它的理解其实偏“结论导向”。 比如知道它能保证原子性、可见性、有序性,也知道它背后有锁升级、对象头、Monitor 这些东西,但一旦继续追问“为什么会升级”“对象头里到底放了什么”“自旋和阻塞的边界
背景 在一个DB层本是只有MySQL项目中,后期同时引入了Clickhouse作为日志存储的数据库。在每次项目发布时都会抛出异常unregister mbean error提示注销bean异常,具体报错如下: javax.management.InstanceNotFoundException:
在理解扩容器前得先明白HashMap中几个常量的含义 //默认初始容量 ,必须为二的次幂 static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // aka 16 //最大容量 static final int MA
类加载顺序 public class ClassLoaderOrder { public static void main(String[] args) { Parent parent = new Child(); parent.eat(); } }
校验注解 使用方法: **在需要进行校验的实体前加上 **@Valid 在需要进行校验的字段上进行对应校验 常用校验有: @AssertTrue / @AssertFalse 验证适用字段:boolean 注解说明:验证值是否为true / false @DecimalMax / @Decima