将深度嵌套的map对象转换为扁平化的map对象输出。 import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * @author 李锋镝 * @date Create at 14:12 2019/7/24 */ public class MapFlatUtil { private static final…
将深度嵌套的map对象转换为扁平化的map对象输出。 import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * @author 李锋镝 * @date Create at 14:12 2019/7/24 */ public class MapFlatUtil { private static final…
@BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次。 @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次。 @BeforeClass 在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。 @AfterClass 在调用当前类的第一个测试方法之后运行,注释方法仅运行一次 @BeforeTest 注释的方法将在属于<test>标签内的类的所有测试方法运行之前运行。 @AfterTest 注释的方法将在属于<test>标签内的类的所有测试方…
分布式锁有很多种实现方式,下面是用redis实现的一个比较简单实用的方式。源码如下: import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.data…
参照mongoDB的ID生成策略,生成唯一ID。 一共12个字节(示例:5cecf0a8a7573ea439fa1a89) 前4个字节表示时间戳 再往后数3个字节表示运行当前程序的机器ID 再往后2个字节表示生成此id的进程的ID 最后3个字节表示由一个随机数开始的计数器生成的值 然后转为16进制的字符串。 源码如下: import lombok.extern.slf4j.Slf4j; import java.io.Serializable; import java.net.NetworkInterface; im…
cglib的BeanCopier功能很强大,不过频繁的create太占用资源,降低服务器性能,所以写了下面的代码进行优化。以达到提升性能的目的。主要就是用缓存将类型相同的copier缓存起来,后续copy的时候就不用再继续创建了。 这样的话如果有频繁用到BeanCopier的地方,将是很有用处滴。 import org.springframework.cglib.beans.BeanCopier; import java.util.concurrent.ConcurrentHashMap; /** * Be…
今天有个小任务,需要调用接口同步数据,然后就写了一个JAVA类,打算直接本地执行main()去同步数据。 代码中使用了apache的httpclient来访问接口,发现输出日志太多了, httpclient maven依赖如下: <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version&g…
简介 SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以表示$2^{41}-1$个数字, 如果只用来表示正整数(计算机中正数包含0),可以表示的数值范围是:0 至 $2^{41}-1$,减1是因为可表示的数值范围是从0开始算的,而不是1。 也就是说41位可以表示$2^{41}-1$个毫秒的值,转化成单位年则是$(2^{41}-1…
@NotNull:// 可以用在所有类型上面,带有@NotNull注解的元素不能为null。对于集合类型的,没有size的约束。 @NotEmpty:// String, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。 @NotBlank:// String去除了前后两段的空白字符串之后是否为null或者空的。 @NotNull: 看源码可知,@NotNull可以用在所有类型上面,带有@NotNull注解的元素不能为null。 /** * The …
UML(Unified Modeling Language)统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。 UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简…
PO persistant object 持久对象 与数据库中表相映射的Java对象。PO中不应该包含任何对数据库的操作。 POJO plain ordinary java object 简单java对象 最基本的Java Bean,只有属性字段及setter和getter方法(传统意义上的Java对象)。 VO value object 值对象 通常用于业务层之间的数据传递,和PO一样仅仅包含数据。但是应该是抽象出的业务对象,可以和表对应,也可以不对应。 BO business object 业务对象 封装业务逻…
春宵一刻值千金,花有清香月有阴。
歌管楼台声细细,秋千院落夜沉沉。
COPYRIGHT © 2025 lifengdi.com. ALL RIGHTS RESERVED.
Theme Kratos Made By Seaton Jiang