源码阅读
文章平均质量分 56
buyulian
这个作者很懒,什么都没留下…
展开
-
怎么查看 mybatis 组装好的 sql
直接 Debug。进入 DefaultParameterHandler 类的 setParameters方法, 在方法最后打断点,看 ps 属性里面有组装好的sql,貌似只有 insert操作会进这里。class RoutingStatementHandler implements StatementHandlerpublic void parameterize(Statement statement) 在最后打断点,select,insert会进这里,其他没测。...原创 2020-05-11 19:01:14 · 1325 阅读 · 1 评论 -
mybatis dao 接口是怎么实例化并和 spring 整合的
一直像彻底理清 mybatis dao 接口是怎么实例化并和 spring 整合的 ,也看了 mybatis 源码,mybatis 功能比较多,实例化过程不好找,于是自己就写了个小 demo,揭示 mybatis 实例化并和 spring 整合的原理。首先准备好要整合的类,我定义了一个 AppleDao 接口,一个 AppleService 用来进行测试。AppleDao@Com...原创 2019-02-26 10:22:17 · 1785 阅读 · 0 评论 -
Spring源码学习笔记 (一)bean是怎么生成的
bean 实在 bean 刷新过程中产生的,首先我们看下 bean 的刷新方法。下面是 AbstractApplicationContext 的 refresh 方法。 @Override public void refresh() throws BeansException, IllegalStateException { synchronized (this.st...原创 2018-09-23 10:41:34 · 516 阅读 · 0 评论 -
spring 源码学习笔记(二)事务管理
spring 事务管理会帮我们自动管理数据库的事务,没读源码前觉得很神秘,读了源码发现原理还是很简单的。本质上还是用的 jdbc 的事务管理。spring 在调用某个方法前,判断是否需要事务,如果需要,则调用con.setAutoCommit(false);//开启事务来开启事务,然后通过反射调用操作数据库的方法,如果抛出异常则执行con.rollback();//回滚事务...原创 2018-09-23 11:51:21 · 267 阅读 · 0 评论 -
SpringBoot2 源码学习笔记(三)
创建哪种web应用类型是怎么决定的首先看看返回web应用类型的方法,我们可以看到这个类并没有传入任何变量,包括执行的时候也没有依赖外部的变量,那么它是怎么决定采用哪种应用类型的呢? private WebApplicationType deduceWebApplicationType() { if (ClassUtils.isPresent(REACTIVE_WEB_ENVIR...原创 2018-09-02 11:55:01 · 1024 阅读 · 0 评论 -
SpringBoot 2 源码学习笔记(二)
SpringBoot 的启动过程从启动类跟进去,在 run 方法中产生了一个 springApplication 对象,并且在生成对象后调用了 run 方法。 /** * Static helper that can be used to run a {@link SpringApplication} from the * specified sources using ...原创 2018-09-02 11:37:11 · 208 阅读 · 0 评论 -
SpringBoot 2 源码学习笔记(一)
创建springboot2项目由于sping5已经出来了,springboot2也已经出来了,所以我就直接研究springboot2的源码了。首先进入Spring官网:https://start.spring.io/ 使用Initalizr创建也可在idea中直接使用Initalizr插件创建。具体demo可从以下地址获取https://github.com/buyulian/flux...原创 2018-09-02 11:16:55 · 309 阅读 · 0 评论 -
阅读 Tomcat 源码第一关--把 Tomcat 运行起来
1、下载 Tomcat 源码Tomcat 开源项目地址:https://github.com/apache/tomcat2、添加 Tomcat 依赖的 jar 包直接建立 Maven 工程导入 jar 包。在项目根目录新建 pom.xml 文件<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi原创 2017-09-09 20:35:08 · 413 阅读 · 0 评论 -
ReentrantLock 实现原理
不多说,读源码,看类图。其中 ReentrantLock 有三个内部类 Sync ,NonfairSync ,FairSync 。 Sync 是一个抽象类,继承自 抽象类 AbstractQueuedSynchronizer。AbstractQueuedSynchronizer 是什么呢?这个就是大名鼎鼎的 AQS 了,其实它是个 FIFo 的队列,里面排队的是等待这个锁的原创 2017-09-15 11:47:17 · 402 阅读 · 0 评论 -
Tomcat 源码初探
Tomcat 源码初探 1、通过运行startup.bat或者startup.sh文件启动实际上这两个文件最后会调用org.apache.catalina.startup.Bootstrap类的main方法,在调用方法时,向 main 方法传入几个变量。 2、阅读源码时通过 ide 启动给 main 方法传入这几个参数进去就行了-Dcatalina.home=D:\原创 2017-09-14 22:55:47 · 265 阅读 · 0 评论