自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小识的博客

放弃很容易,但坚持一定很酷

  • 博客(11)
  • 资源 (14)
  • 收藏
  • 关注

原创 Mybatis源码解析:为什么一级缓存和二级缓存都不建议使用?

介绍要想了解缓存,就必须得了解一下Executor,这个Executor是干嘛的呢?你可以理解为要执行的SQL都会经过这个类的方法,在这个类的方法中调用StatementHandler最终执行SQLExecutor的实现也是一个典型的装饰者模式我相信你已经看出来,SimpleExecutor,BatchExecutor是具体组件实现类,而CachingExecutor是具体的装饰器。可以看到具体组件实现类有一个父类BaseExecutor,而这个父类是一个模板模式的典型应用,操作一级缓存的操作都在.

2020-02-26 20:55:29 1971 3

原创 Mybatis源码解析:动态代理让sql执行更安全高效

Mybatis为什么要使用动态代理对SqlSession进行增强?SqlSession sqlSession = sqlSessionFactory.openSession(true);UserInfo userInfo = sqlSession.selectOne("org.apache.ibatis.atest.UserInfoMapper.selectById", 1);这种方式有什么缺点呢?调用的方法有可能写错,实际要执行的sql并没有配置传入的参数有可能写错,因为入参是Object类.

2020-02-25 23:54:58 964

原创 Mybatis源码解析:配置解析流程

解析配置在我看mybatis源码的时候,大部分代码还是很简单的,DefaultResultSetHandler这个类是最难的,没有之一,debug了很多遍,还是没太搞懂,基于ResultSetHandler也并不是很重要,所以本系列我就不会写ResultSetHandler的内容了mybatis解析配置阶段的代码还是比较简单的,基本上就是对配置文件中的各种属性进行解析,然后将值保存到Configuration对象中,因此直接画个流程图就略过了。比较重要的过程,比如sql的解析过程我会单开一节来分析解.

2020-02-25 20:51:35 1089

原创 Mybatis源码解析:Mybatis是如何兼容这么多日志框架的?

配置打印sql在mybatis-config.xml中settings标签增加日志框架,可选的日志框架如下SLF4J | LOG4J | LOG4J2 | JDK_LOGGING | COMMONS_LOGGING | STDOUT_LOGGING | NO_LOGGING<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN"

2020-02-22 20:42:49 753

原创 Mybatis源码解析:强大的插件是如何工作的?

介绍我之前有篇文章大概写了一下mybatis插件的实现原理Mybatis只写了接口,为什么能运行?Mybaits插件的实现主要用了责任链模式和动态代理动态代理可以对SQL语句执行过程中的某一点进行拦截,当配置多个插件时,责任链模式可以进行多次拦截,责任链模式的UML图如下可以看到在一条责任链中,每个Handler对象都包含对下一个Handler对象的引用,一个Handler对象处理完...

2020-02-21 21:55:07 965

原创 这几个IDEA高级调试技巧,用完就是香

一个项目启动两次测试分布式项目时,经常要一个项目启动2次,不用将一个项目打开多次启动,配置一下即可1.点击Edit Configurations2.勾选Allow parallel run3.依次点击如下2个按钮条件断点有如下代码,只想让它在i == 10的情况下停下来@Testpublic void condition() { for (int i = 0; i &...

2020-02-17 09:06:53 2582 3

原创 Spring Cloud系列教程八:分布式链路追踪Spring Cloud Sleuth(F版)

介绍当系统拆分后,一个前端请求的调用链路会变长,会调用多个不同的后端服务。当一个请求变慢或不可用时,为了方便定位问题,于是就有了分布式链路追踪。分布式链路追踪会在请求中增加traceId和spanId,一个链路包含一个traceId多个spanId例如一个前端请求调用订单系统,而订单系统再去调用库存系统。订单系统的日志如下[INFO][traceId=aaa][SpanId=123]...

2020-02-16 00:25:25 1036

原创 面试官:说一下Synchronized底层实现,锁升级的具体过程?

介绍这是我去年7,8月份面试的时候被问的一个面试题,说实话被问到这个问题还是很意外的,感觉这个东西没啥用啊,直到后面被问了一波new Object,Integer对象等作为加锁对象行吗?会出现哪些问题?为啥java6后synchronized性能大幅上升?我彻底蒙蔽了。下面详细总结一下synchronized使用方式我们知道并发编程会产生各种问题的源头是可见性,原子性,有序性。而synchronized能同时保证可见性,原子性,有序性。所以我们在解决并发问题的时候经常用synchronized,当.

2020-02-09 12:01:09 32290 33

转载 阿里大佬总结的40个多线程面试题,你能答上来几个?

1、多线程有什么用?一个可能在很多人看来很扯淡的一个问题:我会用多线程就好了,还管它有什么用?在我看来,这个回答更扯淡。所谓"知其然知其所以然",“会用"只是"知其然”,“为什么用"才是"知其所以然”,只有达到"知其然知其所以然"的程度才可以说是把一个知识点运用自如。OK,下面说说我对这个问题的看法:(1)发挥多核CPU的优势随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是...

2020-02-06 21:41:31 1034 1

原创 Spring Cloud系列教程七:消息总线Spring Cloud Bus(F版)

介绍我们在Spring Cloud系列教程六 :分布式配置中心Spring Cloud Config(F版)中提到客户端想要获取最新的配置需要访问/actuator/refresh,虽然我们可以用webhook简化这一流程,但是当客户端越来越多的时候,这种方案也不太合适,我们可以用Spring Cloud Bus来解决这一问题github地址:https://github.com/erlieS...

2020-02-02 18:49:12 1093

原创 Spring Cloud源码解析一:Eureka源码解析(F版)

介绍Eureka架构如下图在Eureka的服务治理中,涉及到如下几个概念服务提供者register(服务注册):eureka client 向eureka server注册,提供自身的元数据,如ip地址,端口renew(服务续约):eureka client 每隔30s向eureka server发送一次心跳来续约,如果eureka server在90s没有收到eureka clie...

2020-02-02 15:00:42 2282

mybatis-generator-core-1.3.5.jar

支持接口和XML更名的mybatis-generator,具体使用参考 https://blog.csdn.net/zzti_erlie/article/details/99606620

2019-08-15

MongoDB权威指南第2版(书签,高清).zip

MongoDB权威指南第2版(书签,高清).zip,MongoDB权威指南第2版(书签,高清).zip

2019-05-14

Linux系统命令及Shell脚本实践指南

Linux系统命令及Shell脚本实践指南,书签,清晰,完整版

2019-04-17

Maven实战(高清完整带书签)

Maven实战高清完整带书签,Maven实战高清完整带书签,Maven实战高清完整带书签,Maven实战高清完整带书签

2018-01-09

将doc文件批量转为docx文件,用python将doc文件批量转为docx文件

用python将doc文件批量转为docx文件,用python将doc文件批量转为docx文件,

2017-12-28

Spring MVC学习指南

Spring MVC是Spring框架中用于Web应用快速开发的一个模块,其中的MVC是Model-View-Controller的缩写。作为当今业界最主流的Web开发框架,Spring MVC已经成为当前最热门的开发技能,同时也广泛用于桌面开发领域。, 本书重在讲述如何通过Spring MVC来开发基于Java的Web应用。全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,本书还配有丰富的示例以供读者练习和参考。, 本书是一本Spring MVC的教程,内容细致、讲解清晰,非常适合Web开发者和想要使用Spring MVC开发基于Java的Web应用的读者阅读。

2017-10-13

用Python将Word中的内容写入Excel

用Python将Word中的内容写入Excel

2017-08-28

Qt实现多语言的切换

Qt实现国际化,能切换程序的语言

2017-02-25

Qt加载字体文件删除字体文件

Qt加载自己的字体,不用系统提供的QFontComboBox

2017-02-25

Qt实现字体文件的加载和删除

Qt实现字体文件的加载和删除

2017-02-25

Qt实现语言切换

Qt实现语言切换

2017-02-23

Qt5串口助手V2.0(能记录上次打开的文件)

Qt5串口助手V2.0(能记录上次打开的文件)

2016-09-27

Qt5串口助手

用Qt5自身的类库开发的串口助手

2016-09-26

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除