
源码学习
源码学习
csdn-lijie
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
MAP-HashMap-ConcurrentHashMap 图解分析源码快速掌握底层
介绍最近有点时间,对map和ConcurrentHashMap的基本源码进行了学习,想搞清楚的看我这两张图解就够了MAP-HashMapMap-HashMap源码解析:put源码解析–>如何放入红黑树->hash表和红黑树分别如何扩容https://www.processon.com/view/link/60e9787c079129265422962eConcurrentHashMapConcurrentHashMap的图解分析、特有节点、put方法解析、总结与hashMap的核原创 2021-07-10 18:39:33 · 231 阅读 · 0 评论 -
JDK-synchronized的锁及锁升级源码解析,AQS两张图搞定源码
jdk源码图解学习线程创建(JVM源码分析)&&synchronized原理&&Monitor机制&锁的获取锁升级流程https://www.processon.com/view/link/60337d40e401fd0290e6a827AQS:并发多线程抢锁源码分析(debug跟踪)-条件队列栅栏 以CyclicBarrier为例&&源码分析CountDownLatch闭锁流程https://www.processon.com/view原创 2021-03-15 23:28:39 · 664 阅读 · 3 评论 -
springboot源码学习-画流程图学源码
最近加班比较多,spring源码已经将主线撸了一遍,将学到的通过画图再梳理一遍,非常有效。因此springboot也通过画流程图来学习:一、Spring基于java-SPI扩展的SPI&spring boot启动和配置加载流程&条件装配&自定义属性类&自己写个中间件https://www.processon.com/view/link/5f66bb8bf346fb40fb9b4b87二、@springbootApplication(如何加载自动配置类、加载源码涉及的原创 2020-10-23 22:18:45 · 578 阅读 · 0 评论 -
项目优化-写个切面统一项目日志
文章目录思路整体思路:日志id传递问题:流程图具体demo:简单的自定义注解类:切面切点函数:环绕通知:思路整体思路:通过切面完成日志规整,提供针对类和方法的注解,通过需要打日志的主要方法加上注解,Controller和mq消费处这样的入口加上类注解,环绕通知来完成入参,执行时间的计算。后置通知和后置异常通知来完成threadLocal变量的释放,执行时间的打印和出参打印(threadLocal变量的释放只针对入口处,执行时间的打印和出参打印是针对所有加注解的地方)。日志id传递问题:为了将日志I原创 2020-08-22 14:49:44 · 380 阅读 · 0 评论 -
参数校验代码的一些思考_学源码
起因今天工作的时候,突然想到源码中的参数校验为何没有那么繁琐,而项目代码的校验就比较麻烦。记录一下思考的过程,后面再与同事讨论:过程比如service层对于方法入参校验处理:if(businessType == null){ return responseUtil.responseData("1", "业务类型不能为空", data);}if(businessType == null){ return responseUtil.responseData("1", "业务类型不能为空原创 2020-08-08 00:19:23 · 263 阅读 · 0 评论 -
源码-配置文件-如何跟踪学习
学习spring和mybatis源码中,发现一个小规律:NamespaceHandler类为核心关键,解析xml。不同的标签将由对应的nameSpaceHandler实现类,来解析处理。有助于学习和定位,因配置导致的问题,找到解析的源码,特记录一下。一、源码截图spring源码:mybatis-spring中间件二、具体例子:比如:spring配置aop<aop:aspectj-autoproxy proxy-target-class="true"/>对应的解析源码:原创 2020-08-07 21:35:33 · 186 阅读 · 0 评论 -
spring是会把@autowired注解注入的类的所有父类也注入进来。父类不用任何注解就可以被spring容器管理-源码底层告诉你
缘由学习spring-IOC后置处理器的第三次调用发现一个有意思的点,所以写出来记录一下。源码在研究ioc的bean的创建过程,org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean:在第三次后置处理器调用时的部分源码:// Allow post-processors to modify the merged bean definition. //允许后置处理器修改合并原创 2020-07-12 23:14:29 · 1726 阅读 · 1 评论 -
spring源码学习-画流程图学源码
学习方式工作一直很忙,只能一点点学源码,但是这样很容易看一半就忘记前面的。因此我根据自己的需要,通过ProcessOn记录源码,通过画图完成源码的学习。花费了近一个月,画了一些流程和自己的见解。持续更新中。。。推荐大家使用,下面截出一部分图供了解:因为图片都比较大,无法截出来发出,因此在下面列出了对应的链接:ioc-主流程https://www.processon.com/view/link/5ed7c1ca0791297145ce2949ioc全流程https://www.process原创 2020-06-21 00:35:10 · 1253 阅读 · 0 评论 -
在git上弄一个自己的项目-方便家里和公司两台电脑更新项目
文章目录缘由上传项目:一、在自己的git建立一个空项目:二、项目上传git远程仓库缘由最近学习源码,出现一点问题:1、每天背着电脑公司家里来回跑,很麻烦。2、学习源码都会在源码上写上自己学习的笔记和注释(比如对源码的某个方法是干什么的,需要注意什么等等)。3、分别在两台电脑上学习,就会导致每个电脑上源码各有一部分注释。因此,我准备将项目上传到git,两台电脑都通过git来对项目进行更新。下面记录一下,如何做的,如何解决第二台机器clone下来遇到的问题。上传项目:一、在自己的git建立一个原创 2020-05-30 01:39:51 · 2086 阅读 · 2 评论 -
源码敲门砖-mybatis源码-执行器&plugins
执行器执行器分类public enum ExecutorType { SIMPLE, REUSE, BATCH}三种执行器区别:SIMPLE:默认执行器REUSE:复用执行器BATCH:批量执行器SIMPLE:默认执行器默认执行器:configuration类中有设置protected ExecutorType defaultExecutorType = ExecutorType.SIMPLE;为每个语句的每次执行创建一个新的预处理语句。REUSE:复用执行器复用预处理语句原创 2020-05-24 02:05:26 · 232 阅读 · 0 评论 -
源码敲门砖-mybatis源码-底层如何执行sql
主干代码和源码接着上篇,本篇研究mybatis如何获取执行器并执行解析后的sql主干代码SqlSession sqlSession = sqlSessionFactory.openSession();主干源码DefaultSqlSessionFactory类:public SqlSession openSession() { return openSessionFromDataSource(configuration.getDefaultExecutorType(), null, fa原创 2020-05-19 18:12:34 · 666 阅读 · 0 评论 -
源码敲门砖-mybatis源码-mapper详解和底层如何解析sql
文章目录(一)配置mapper的方式:(二)如何解析:2.1 解析主配置文件的主要方法:2.2 解析mappers2.2.1、源码:2.2.2 mappers中子标签的优先级和配置规则Package子标签:Mapper子标签:2.2.3 跟踪源码探查根源:解析mapper时,会将mapper接口放到configuration。addMapper源码:跟踪parse(下面2.2.4会对parse方法的每一步进行分析:)2.2.4 parse中的核心方法:① 首先执行的是loadXmlResource② co原创 2020-05-17 19:40:17 · 549 阅读 · 0 评论 -
源码敲门砖-mybatis源码-入门1
文章目录简述:背景:Mybatis与 JDBC 编程的比较 :ORM:什么是MyBatis?入门:下载源码:导入项目:主流程代码:1、读取mybatis的主配置文件源码路线:2、使用构建者模式,得到SqlSessionFactory对象SqlSessionFactoryBuilderXMLConfigBuilder:第一步很简单就是创建一下XMLConfigBuilder:第二步:使用XMLConfigBuilder进行解析:xml示例:里面的解析方法evalNode:解析节点将解析得到的信息封装到Conf原创 2020-05-11 19:39:31 · 227 阅读 · 0 评论 -
Spring5源码学习之路:准备工作
Spring5源码学习之路软件版本:IntelliJ IDEA 2019.3.1 x64spring-framework-v5.2.0.RELEASE其他都是根据源码配置文件指定的版本,我来下载的,后面会提到。(一) 整体步骤:按照: 原文链接 : https://blog.youkuaiyun.com/Dcwjh/article/details/104471560进行准备,下载源码,下载gra...原创 2020-05-03 23:24:35 · 3936 阅读 · 3 评论