5 PostTruth

尚未进行身份认证

道阻且长,行则将至。

等级
TA的排名 4k+

Excel 导入导出太麻烦? Easy excel 了解一下 !

Easy-Excel它是什么?easy-excel 是基于 Apache POI 框架的一款扩展封装库,让我们在开发中更快速的完成导入导出的需求。 尽管很多人会提出 poi 能干这事儿为什么还要封装一层呢?easy-excel 很大程度上简化了代码、让使用者更轻松的 读、写 Excel 文档,也不用去关心格式兼容等问题,很多时候我们在代码中会写很多的 for 循环,各种 getXXXInde...

2020-04-23 18:25:56

Java 线程池是如何诞生的?

时间回到 2003 年,那时我还是一个名不见经传的程序员,但是上级却非常看好我,他们把整个并发模块,都交给了我一个人开发。(难道不是因为经费不足?)这个星期,我必须要完成并发模块中非常重要的一个功能 —— 线程池。为什么要使用线程池作为一个合格的程序员,接到需求,首先我得问自己一句:为什么要做这个需求?为什么需要线程池?软件中的 “池”,可以理解为计划经济时代的工厂。首先,作为工厂,你...

2020-04-08 15:15:22

如何说服你的同事使用TDD ?

TDD(Test-driven development),也就是我们常说的 “测试驱动开发”,是由 Kent Beck 在 1996 年提出的概念。TDD 这个术语,经常被人挂在嘴边,然而真正在项目实施,却寥寥无几。是 TDD 对开发者要求太高?还是 TDD 根本就不值得去做?非也。为了让大家对 TDD 有一个具体而亲切的认识,我先给大家举一个在编程中使用 TDD 进行开发的实际例子。Bob...

2020-04-08 10:50:32

浅谈测试驱动开发(TDD)

TDD 是什么TDD 是敏捷开发中的一项核心实践和技术,也是一种设计方法论。TDD 的原理是在开发功能代码之前,先编写单元测试用例代码,测试代码确定需要编写什么功能代码。TDD 的基本思路是通过测试来推动这个开发的过程,但测试开发并不是单纯的测试工作,而是把 需求分析,设计,质量控制量化的过程。TDD 的目的不仅仅是测试软件,保证代码质量仅仅是其中的一部分,更重要的是,在开发过程中帮助开发者...

2020-04-02 17:27:54

上传Gradle项目到 mvnrepository

前言当我们封装完成我们自己做的工具之后,那我们肯定想要发给别人让别人来进行使用,上传到中央仓库是一种引入时最方便的选择。网上有很多教程,但是大多都是maven和windows的环境。今天就来记录一下,在mac上使用gradle上传jar到mvn中央仓库所要踩的坑。大致步骤:1、注册issues.sonatype.org2、创建issue3、根据issue完成相应操作4、生成公钥私钥...

2020-03-14 16:43:20

UML类图以及常见类关系图解

UML类图以及常见类关系图解

2020-03-01 09:17:15

Java 获取月初时间

网上说的一大堆都是炒来炒去的, 神烦! 我来说个简单的方法吧:OffsetDateTime dateBegin = OffsetDateTime.now() .withDayOfMonth(1).withHour(0).withMinute(0).withMinute(0).withSecond(0);LocalDateTime dateBegin = LocalDa...

2020-01-20 18:22:11

“云”到底是什么?--科普贴

越来越多的软件,开始采用云服务。从小型企业到全球企业,云都是一个非常热门的话题,它是一个非常广泛的概念,涵盖了很多在线领域。术语“云”的概念已经被过度使用了。但是如果穿过这些天花乱坠的宣传,我们就会发现云计算有三种模式。它们分别是:基础设施即服务(Infrastructure as a Service,IaaS);平台即服务(Platform as a Service,PaaS);软件即...

2019-12-29 15:49:55

MySQL:Left Join 如何过滤的?

现象:left join在我们使用mysql查询的过程中可谓非常常见,比如博客里一篇文章有多少条评论、商城里一个货物有多少评论、一条评论有多少个赞等等。但是由于对join、on、where等关键字的不熟悉,有时候会导致查询结果与预期不符,所以今天我就来总结一下,一起避坑。这里我先给出一个场景,并抛出两个问题,如果你都能答对那这篇文章就不用看了。假设有一个班级管理应用,有一个表classes,...

2019-12-24 11:02:20

Mysql 表连接的原理

Mysql 表连接的原理搞后端的肯定要经常接触到数据库,搞数据库一个避免不了的地方就是 join, join的语法很简单,但是在使用时常常陷入一下两种误区:误区一: 业务至上,管他三七二十一,再复杂的查询一个连接语句搞定误区二: 敬而远之,上次写的慢查询sql就是使用了join导致的,以后再也不敢用了先来举个栗子:mysql> SELECT * FROM t1;+------...

2019-12-11 16:32:44

什么是程序的局部性原理

01、前言作为有追求的程序员,我们日常在写代码的时候往往都会运用很多奇技淫巧,不单单是为了炫耀我们的技术,更是为了追求更高的效率。了解局部性原理,可以有效的帮助我们理解和写出更好的代码,对于局部性原理可能有的小伙伴知道,有的小伙伴不知道,知道的小伙伴就当做复习知识点,不知道的小伙伴也没关系,接着往下看就知道了。02、什么是局部性原理说到局部性原理,那我们首先要知道什么是局部性原理,局部性原理...

2019-12-02 11:38:14

实用:如何将aop中的pointcut值从配置文件中读取

背景改造老项目,须要加一个aop来拦截所的web Controller请求做一些处理,由于老项目比较多,且包的命名也不统一,又不想每个项目都copy一份相同的代码,这样会导致后以后升级很麻烦,不利于维护。于是我们想做成一个统一的jar包来给各项目引用,这样每个项目只须要引用该jar,然后配置对应的切面值就可以了。我们都知道,java中的注解里面的值都是一个常量, 如:@Pointcut("e...

2019-12-02 11:24:12

Spring 使用 @Transactioal 不会回滚的几种情况

Spring 使用 @Transactioal 不会回滚的几种情况对 Spring 的基于注解方式的实现步骤和事务内在实现机制有较好的理解之后,就会更好的使用注解方式的事务管理,避免当系统抛出异常,数据不能回滚的问题。正确的设置@Transactional 的 propagation 属性需要注意下面三种 propagation 可以不启动事务。本来期望目标方法进行事务管理,但若是错误的配置...

2019-11-26 17:09:32

在SpringBoot中使用 STOMP协议 基于 WebSocket 建立 BS 双向通信

WebsocketHTTP、WebSocket 等应用层协议,都是基于 TCP 协议来传输数据的。HTTP不足在于它与服务器的全双工通信依靠轮询实现,对于需要从服务器主动发送数据的情境,会给服务器资源造成很大的浪费,WebSocket是针对HTTP在这种情况下的补充。对于 WebSocket 来说,它必须依赖 HTTP 协议进行一次握手 ,握手成功后,数据就直接从 TCP 通道传输,与 HT...

2019-11-13 17:24:00

Spring Websocket, SockJS, Stomp 整合

Spring Websocket, SockJS, Stomp 整合(WebSocket介绍)Spring Websocket, SockJS, Stomp 整合(WebSocket API)Spring Websocket, SockJS, Stomp 整合(SockJS Fallback)Spring Websocket, SockJS, Stomp 整合(WebSocket STOMP...

2019-10-29 15:51:04

LinkedHashMap如何支持 LRU?

LinkedHashMap每次调用 put() 函数,往 LinkedHashMap 中添加数据的时候,都会将数据添加到链表的尾部支持按访问时间排序我们先来看一段代码。你觉得这段代码会以什么样的顺序打印 3,1,5,2 这几个 key 呢?原因又是什么呢?HashMap<Integer, Integer> m = new LinkedHashMap<>();m...

2019-10-25 10:22:49

如何画好架构图

如何画好架构图推荐一个画图工具: draw

2019-10-21 14:23:16

jOOQ-将两个表的连接提取到相应的POJO中

在jOOQ中如果我想将一行表取出到jOOQ自动生成的POJO中,例如:dsl.selectFrom(USER) .where(USER.U_EMAIL.equal(email)) .fetchOptionalInto(User.class);现在,假设我想在两个表之间进行连接,例如USER和ROLE,如何将结果提取到这两个表的P...

2019-09-25 10:45:53

MySQL是怎样运行的(一) ——数据页

数据页结构页的概念,它是InnoDB管理存储空间的基本单位,一个页的大小一般是16KB。页的种类有很多,这篇主要说一下索引(INDEX)页。下面的表格是索引页的储存结构:名称 中文名 占用空间大小 简单描述 File Header 文件头部 38字节 页的一些通用信息 Page Header 页面头部 56字节 数据页专有...

2019-09-17 17:01:30

Mysql是怎样运行的(二) --索引

各个数据页可以组成一个双向链表,而每个数据页中的记录会按照主键值从小到大的顺序组成一个单向链表,每个数据页都会为存储在它里边儿的记录生成一个页目录(Page Directory),在通过主键查找某条记录的时候可以在页目录中使用二分法快速定位到对应的槽,再遍历该槽对应分组中的记录即可快速找到指定的记录,页和记录的关系示意图如下:附: 页 a、页 b、页 c … 页 n 这些页可以不在物理结构上相连...

2019-09-17 15:29:39

查看更多

勋章 我的勋章
  • GitHub
    GitHub
    绑定GitHub第三方账户获取
  • 专栏达人
    专栏达人
    授予成功创建个人博客专栏的用户。专栏中添加五篇以上博文即可点亮!撰写博客专栏浓缩技术精华,专栏达人就是你!
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。