Elasticsearch基本概念 Elasticsearch是基于Lucene的全文检索库,本质也是存储数据,很多概念与传统关系型数据库类似。 传统关系型数据库与Elasticsearch进行概念对比 Elasticsearch 传统关系型数据库 indices(索引库) Databases(数据库) type(类型 […]
Elasticsearch基本概念 Elasticsearch是基于Lucene的全文检索库,本质也是存储数据,很多概念与传统关系型数据库类似。 传统关系型数据库与Elasticsearch进行概念对比 Elasticsearch 传统关系型数据库 indices(索引库) Databases(数据库) type(类型 […]
功能: 实现根据freemarker模板生成对应的PDF文件; 可以指定文字、位置、页数生成指定的印章(图片),可以指定印章大小; 指定字体、字体大小、文字方向、颜色等生成文字水印 maven依赖: <dependency> <groupId>org.xhtmlrenderer</gr […]
安装 安装SVN服务器端(Setup-Subversion-X.X.XX.msi): 下载地址:http://sourceforge.net/projects/win32svn/files/?source=navbar 按照自己的电脑系统下载对应的文件,下载成功后直接下一步到结束 然后打开dos窗口输入svn或者svn […]
标题{#1} 文字前顶头加 "#" + 空格 来表示标题 一级标题:# 二级标题:## ... 六级标题:###### 最多支持到六级标题。 例: # 一级标题 ## 二级标题 ### 三级标题 #### 四级标题 ##### 五级标题 ###### 六级标题 页面效果: 一级标题 二级标题 三级标题 四 […]
背景 SpringBoot和SpringCloud的版本需要对应,不然会因为jar包版本不兼容导致一系列奇怪的问题。因为官方不会保证SpringBoot和SpringCloud不同版本的兼容性。 大版本对应 SpringCloud版本 SpringBoot版本 Hoxton 2.2.x Greenwich 2.1.x […]
自定义时间格式: DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd HH:mm:ss"); DateTime dateTime = DateTime.parse("2019-08-02 11:33:56", formatter); S […]
将深度嵌套的map对象转换为扁平化的map对象输出。 import org.apache.commons.lang3.StringUtils; import java.util.HashMap; import java.util.Map; import java.util.Set; /** * @author 李锋镝 […]
@BeforeSuite 在该套件的所有测试都运行在注释的方法之前,仅运行一次。 @AfterSuite 在该套件的所有测试都运行在注释方法之后,仅运行一次。 @BeforeClass 在调用当前类的第一个测试方法之前运行,注释方法仅运行一次。 @AfterClass 在调用当前类的第一个测试方法之后运行,注释方法仅运 […]
分布式锁有很多种实现方式,下面是用redis实现的一个比较简单实用的方式。源码如下: import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Va […]
cglib的BeanCopier功能很强大,不过频繁的create太占用资源,降低服务器性能,所以写了下面的代码进行优化。以达到提升性能的目的。主要就是用缓存将类型相同的copier缓存起来,后续copy的时候就不用再继续创建了。 这样的话如果有频繁用到BeanCopier的地方,将是很有用处滴。 import org […]
简介 SnowFlake算法生成id的结果是一个64bit大小的整数,它的结构如下图: 1位,不用。二进制中最高位为1的都是负数,但是我们生成的id一般都使用整数,所以这个最高位固定是0 41位,用来记录时间戳(毫秒)。 41位可以表示$2^{41}-1$个数字, 如果只用来表示正整数(计算机中正数包含0 […]
@NotNull:// 可以用在所有类型上面,带有@NotNull注解的元素不能为null。对于集合类型的,没有size的约束。 @NotEmpty:// String, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。 @NotBlank:// String去 […]
PO persistant object 持久对象 与数据库中表相映射的Java对象。PO中不应该包含任何对数据库的操作。 POJO plain ordinary java object 简单java对象 最基本的Java Bean,只有属性字段及setter和getter方法(传统意义上的Java对象)。 VO va […]
我们知道了何谓重构和为何重构,那么什么时候才是重构的好时机呢?我们是不是应该安排专人专门安排时间来进行重构呢? 答案是否。 重构本来就不是一件需要专一去做的事情(并不是说重构不重要),重构应该随时随地进行!记住一点:不应该为重构而重构。之所以重构,是因为你要做别的事情,而重构可以帮助你把事情做好。
项目经过不断的迭代、修改、升级...基于原先的设计所得到的系统,整体结构逐渐衰弱,代码质量不断降低,代码的可读性、弹性越来越差,冗余代码越来越多,导致新的需求只能胡乱拼凑上去...再加上公司内部的人员调整,陈年代码无人能懂更不敢随意优化(稍不注意就会导致意想不到的灾难发生)。 这样导致的结果就是代码质量、项目性能慢慢下降,程序的设计逐渐腐败变质,本来严谨的编码工作逐渐变成胡乱拼凑的随性行为
以无厚入有间,恢恢乎其于游刃必有余地矣。
COPYRIGHT © 2016-2026 lifengdi.com. ALL RIGHTS RESERVED.
Theme Kratos-plus By Dylan Li