- 浏览: 156118 次
- 性别:
- 来自: 宇宙
最新评论
文章列表
1. 依赖工具
Maven
Git
JDK
IntelliJ IDEA
2. 源码拉取
从官方仓库 https://github.com/mybatis/mybatis-3 Fork 出属于自己的仓库。为什么要 Fork ?既然开始阅读、调试源码,我们可能会写一些注释,有了自己的仓库,可以进行自由的提交。
精尽 MyBatis 学习指南
- 博客分类:
- 精尽Mybatis
视频
《MyBatis 视频教程全集》 一共 235P 。
推荐~记得 b 站【收藏 + 点赞 + 投币】素质三连噢。
本视频分成 A/B/C 三部分。
【必选】A 部分(MyBatis 篇) P01-P88
MyBatis配置文件编写,MyBatis动态SQL,MyBatis缓存机制,MyBatis-Spring整合,MyBatis逆向工程,MyBatis高级内容(MyBatis源码解析,MyBatis单/多插件运行机制,MyBatis四大对象工作原理,自定义TypeHandler、MyBatis存储过程&游标处理等)。 视频中会在重要的地方对比MyBati ...
精尽 MyBatis 面试题
- 博客分类:
- 精尽Mybatis
以下面试题,基于网络整理,和自己编辑。具体参考的文章,会在文末给出所有的链接。
如果胖友有自己的疑问,欢迎在星球提问,我们一起整理吊吊的 MyBatis 面试题的大保。
而题目的难度,艿艿尽量按照从容易到困难的顺序,逐步下去。
MyBatis 编程步骤
创建 SqlSessionFactory 对象。
通过 SqlSessionFactory 获取 SqlSession 对象。
通过 SqlSession 获得 Mapper 代理对象。
通过 Mapper 代理对象,执行数据库操作。
执行成功,则使用 SqlSession 提交事务。
执行失败,则使用 SqlSessio ...
1. 概述
本文,我们来补充 《精尽 Spring Boot 源码分析 —— 自动配置》 文章,并未详细解析的 AutoConfigurationMetadataLoader 。在 SpringApplication 中,我们可以看到 AutoConfigurationImportSelector.AutoConfigurationGroup#loadMetadata(ClassLoader classLoader, String path) 方法中,加载自动配置类(AutoConfiguration)的元数据,是如下一段代码:
// AutoConfigurationImportS ...
1. 概述
本文,我们来补充 《精尽 Spring Boot 源码分析 —— SpringApplication》 文章,并未详细解析的 SpringFactoriesLoader 。
spring.factories 配置文件,我们可以认为是 Spring 自己的一套 SPI 机制的配置文件,在里面可以配置不同接口对应的实现类们。例如:
# PropertySource Loadersorg.springframework.boot.env.PropertySourceLoader=\org.springframework.boot.env.PropertiesProper ...
1. 概述
本文,我们来补充 《精尽 Spring Boot 源码分析 —— SpringApplication》 文章,并未详细解析的 BeanDefinitionLoader 。在 SpringApplication 中,我们可以看到 #load(ApplicationContext context, Object[] sources) 方法中,是如下一段代码:
// SpringApplication.javaprotected void load(ApplicationContext context, Object[] sources) { if (logger.isDebu ...
1. 概述
本文我们来分享 @ConfigurationProperties 注解,如何将配置文件自动设置到被注解的类。代码如下:
// ConfigurationProperties.java/** * Annotation for externalized configuration. Add this to a class definition or a * {@code @Bean} method in a {@code @Configuration} class if you want to bind and validate * some external Prop ...
1. 概述
在使用 Spring Boot 时,默认就已经提供了日志功能,使用 Logback 作为默认的日志框架。本文,我们就来一起研究下,Spring Boot 是如何自动初始化好日志系统的。
不了解 Spring Boot 日志功能的胖友,可以先看看 《一起来学 SpringBoot 2.x | 第三篇:SpringBoot 日志配置》 文章。
2. LoggingApplicationListener
Spring Boot 提供日志功能,关键在于 LoggingApplicationListener 类。在 《精尽 Spring Boot 源码分析 —— Applicatio ...
1. 概述
在使用 Spring Boot 时,我们可以很方便的在 application.properties 或 application.yml 配置文件中,添加相应的应用所需的配置。那么,究竟 Spring Boot 是如何实现该功能的呢,今儿我们就通过 Spring Boot 的源码,一探究竟!
艿艿的高能提示:这篇会非常长,建议胖友保持耐心。另外,最好边调试边看~
2. Profiles
在讲配置加载之前,不得不先提下 Spring Profiles 功能。
如果不熟悉的胖友,先看看 《详解 Spring 中的 Profile》 文章。
关于这一块,之前在 《【 ...
1. 概述
本文,我们来补充 《精尽 Spring Boot 源码分析 —— SpringApplication》 文章,并未详细解析的 ApplicationListener 。
2. ApplicationListener
org.springframework.context.ApplicationListener ,应用事件监听器接口。代码如下:
// ApplicationListener.java
/**
* Interface to be implemented by application event listeners.
* Based on t ...
1. 概述
本文,我们来补充 《精尽 Spring Boot 源码分析 —— SpringApplication》 文章,并未详细解析的 ApplicationContextInitializer 。
2. ApplicationContextInitializer
org.springframework.context.ApplicationContextInitializer ,ApplicationContext 初始化接口。代码如下:
/** * Callback interface for initializing a Spring {@link Configurabl ...
1. 概述
本文接 《精尽 Spring Boot 源码分析 —— ServletWebServerApplicationContext》 一文,我们来分享 ReactiveWebServerApplicationContext 类,它提供 Reactive Web 环境的 Spring 容器。
AnnotationConfigReactiveWebServerApplicationContext 的类图关系如下:
相比来说,ReactiveWebServerApplicationContext 比 ServletWebServerApplicationContext 有更多的层级关系 ...
1. 概述
在 《精尽 Spring Boot 源码分析 —— SpringApplication》 一文中,我们看到 SpringApplication#createApplicationContext() 方法,根据不同的 Web 应用类型,创建不同的 Spring 容器。代码如下:
// SpringApplication.java/** * The class name of application context that will be used by default for non-web * environments. */public static final St ...
1. 概述
在前面的文章,我们已经看过 Spring Boot 如何实现自动配置的功能,但是,实际场景下,这显然不够。为什么呢?因为每个框架的配置,需要满足一定的条件,才应该进行自动配置。这时候,我们很自然就可以想到 Spring Boot 的 Condition 功能。不过呢,Condition 功能并不是 Spring Boot 所独有,而是在 Spring Framework 中就已经提供了。那么,究竟是什么样的关系呢,我们在 「2. Condition 演进史」 来瞅瞅。
2. Condition 演进史
2.1 Profile 的出场
在 Spring3.1 的版本,为了满足 ...
1. 概述
本文,我们来分享 Spring Boot 自动配置的实现源码。在故事的开始,我们先来说两个事情:
自动配置和自动装配的区别?
Spring Boot 配置的原理
2. 自动配置 V.S 自动装配
在这篇文章的开始,艿艿是有点混淆自动配置和自动装配的概念,后来经过 Google 之后,发现两者是截然不如同的:
自动配置:是 Spring Boot 提供的,实现通过 jar 包的依赖,能够自动配置应用程序。例如说:我们引入 spring-boot-starter-web 之后,就自动引入了 Spring MVC 相关的 jar 包,从而自动配置 Spring MVC ...