在采用分库分表的数据库结构设计时,往数据库中新增数据(insert)不能在通过自增id来保证id唯一了,因为分表两个同样的表在不同服务器上自增id会重复,所有必须通过手动添加id来保证id的唯一性,snowflake (雪花)算法(twitter出品)就是用来生成唯一主键值很好的选择
Java反射获取某个接口的所有实现类
我们知道通过java反射可以获取到某个类的class对象,从而获取这个类中的所有重要信息,如获取到该类实现的所有接口和继承的父类,但是对于获取到该类的子类等信息则获取不到了,这就像我们可以知道古人,古人却不知道我们,向上可以获取,向下不行!那么通过什么手段可以向下获取呢?
如何手写一个JDK的动态代理实现
代理模式分为静态代理与动态代理两种模式,其中静态代理则必须在编译期就需要确认代理类与被代理类,灵活性不高,而动态代理则是在运行期来确认,代理类通过编译器在运行时动态生成,无需我们手动创建!
动态代理模式如果细分,又要分为接口代理与子类代理模式, 在我们常用的Spring AOP 中就用到了两种动态代理模式:JDK动态代理和CGLIB动态代理,两种动态代理形成互补。
接口代理模式:需要代理类与被代理类实现共同接口,也就是说被代理类必须实现一个接口才能被代理。
子类代理模式:没有要求,因为代理类会做为被代理类的子类存在。(灵活性更高,效率更快)
Mybatis批量插入数据
本文主要讲Mybatis批量插入数据的三种方式效率对比和往数据库批量插入100万条数据实现的思路分析,数据库为MySql。
mybatis的底层原理分析
Mybatis是一个ORM框架,ORM是( Object Relational Mapping )的简写,翻译过来就是 对象-关系映射 ,简单来说就是把数据库和实体类及实体类的属性对应起来,让我们可以操作实体类就能实现操作数据库。
通过docker挂载目录安装nginx和SSL证书的配置
maven工程依赖不自动下载或更新解决方法
大家有没有碰到过,点刷新和手动下载之后,还是一堆红波浪线,并没有自动下载依赖。
解决方法:
点击如图的按钮,执行一个maven命令即可:
1 | mvn -U idea:idea |
如果是使用
这是因为这里面只是声明一个依赖,并不是真实的下载jar,只有在子module中使用到,才会去下载依赖。