
源码剖析
哒布拉布拉
Java
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
阿里开源EasyExcel数字转换问题
单元格中的数据为小数,如果位数超过十位且单元格格式设置为常规,此时数据只显示十位,超出的会末尾截取。invoke方法接收到的数据是截取后的,即240451327.4。这是因为在进入到自定义的Listener之前先调了ModelBuildEventListener,这个Listener中会把CellData中的单元格数据转换成String类型,问题就出在这里,常规和数值转换的格式不一样。单元格为常规格式的转换单元格为数值格式的转换下面看下格式为常规出现的问题ModelBuildEventLi原创 2021-02-10 15:27:44 · 4429 阅读 · 2 评论 -
Mybatis核心源码分析之加载XML文件(二)
上一篇分析了Mapper初始化的核心源码,本篇主要分析一下SpringBoot如何加载Mapper.xml文件。如果在你的SpringBoot项目里引入的是下面的包: <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId>原创 2020-06-08 21:17:20 · 627 阅读 · 0 评论 -
Mybatis核心源码分析之Mapper初始化(一)
如果项目中的ORM框架用的是Mybatis,只需要配置一下数据源,然后再定义一个mapper接口和一个xml文件就可以实现Java对象与数据库表之间的映射,从而可以实现对数据库的访问。使用起来非常简单,这得益于Mybatis强大的封装能力。下面我们分析一下Mybatis的核心源码,看看Mybatis是怎么实现的。本篇主要介绍Mapper的初始化。Mapper是一个接口,需要有具体的实现类来完成它定义的功能,Mybatis给所有的Mapper创建了动态代理,这些动态代理是通过Spring提供的Factory原创 2020-06-06 09:26:31 · 1062 阅读 · 0 评论 -
日常踩坑篇—Spring事务的两个坑点
现在的程序开发基本都是“拿来主义”,有很多现成的组件可以用,但是不究其原理,不掌握组件内部的实现机制,就会出现比较有意思的场景:“我什么都没改啊!”、“我只加了一个字段而已!”,因为你已经掉进坑里了。没有完美的解决方案,每种方案都有利有弊,AOP也是一样。Spring事务是基于Spring AOP实现的,如果你对Spring AOP还不是很熟悉,可以看看笔者的另一篇文章:源码剖析篇—Spring ...原创 2020-05-04 16:43:44 · 636 阅读 · 0 评论 -
源码剖析篇—HashMap的初始容量为什么最好设为2的次幂
这里写自定义目录标题HashMap的初始容量为什么最好设为2的次幂HashMap的初始容量为什么最好设为2的次幂首先我们来看看如果初始容量不是2的次幂会出现什么问题。为了更好的演示接下来出现的问题,我们取比较特殊一点的数字。假设我要存12个元素,为了防止HashMap扩容,初始容量应设为(12/0.75) + 1 = 17。下面我们来看下HashMap计算数组索引的源码,如下图:上图中有...原创 2020-04-15 13:00:30 · 493 阅读 · 0 评论 -
源码剖析篇—Spring Aop
什么是AOP关于AOP的相关概念解释网上一搜一箩筐,笔者不在这里赘述。举个生活中常见的例子,现在高铁网络很发达,高铁是很多人出行的首选之一。乘坐高铁有一个重要的环节是检票,在进入候车大厅时要交出身份证进行检票检查。有趣的地方就在这里,为什么要在候车大厅的门口进行检票呢?可能有的人觉得理所应当,这是受思维定势的影响,生活中习以为常的事就变得理所应当。我们抛开所有已知的关于高铁站的事项,假设现在要建...原创 2020-04-29 16:49:42 · 392 阅读 · 0 评论