源码学习

罗曼蒂克在消亡3 个月前
java·mybatis·源码学习
2.3MyBatis——插件机制插件机制是一款优秀框架不可或缺的组成部分,比如spring、dubbo,还有我们要聊的Mybatis等等。所谓插件,通俗一点说,就是框架提供了一个入口,允许你通过实现框架提供的扩展接口,来进行功能增强。比如spring的前置处理器允许你在Bean创建的过程中添加自定义逻辑。 具体到Mybatis框架,它的核心是ORM和SQL的映射。那么映射成功的SQL在具体执行的过程中,存在许多时机,比如参数处理阶段,SQL语句处理阶段,SQL执行阶段,返回结果的处理阶段等。在这些阶段或者说执行点,如果框架提供了扩展点,
Huazie6 个月前
spring boot·environment·源码学习·可配置的环境
【Spring Boot 源码学习】初识 ConfigurableEnvironment《Spring Boot 源码学习系列》上篇博文,Huazie 带大家深入分析下 ApplicationArguments 接口及其默认实现。在初始化完 ApplicationArguments 之后,Spring Boot 就开始通过 prepareEnvironment 方法对 ConfigurableEnvironment 对象进行初始化操作。在介绍 ConfigurableEnvironment 的初始化之前,我们有必要先认识一下 ConfigurableEnvironment 接口。
Huazie8 个月前
spring boot·源码学习·run 方法监听器
【Spring Boot 源码学习】SpringApplication 的 run 方法监听器《Spring Boot 源码学习系列》书接前文《SpringApplication 的 run 方法核心流程介绍》,Huazie 围绕 SpringApplication 的 run 方法,带大家一起初步了解了 Spring Boot 的核心运行流程。其中有关运行流程监听器的内容出现最多,但还未细讲。那么本篇就深入了解下 SpringApplication 的 run 方法监听器。
Huazie9 个月前
spring boot·源码学习·共享元数据读取工厂·上下文初始化器
【Spring Boot 源码学习】共享 MetadataReaderFactory 上下文初始化器《Spring Boot 源码学习系列》上篇博文《深入应用上下文初始化器实现》,Huazie 带大家详细分析了 分析 Spring Boot 中预置的应用上下文初始化器实现【即 ApplicationContextInitializer 接口实现类】的源码,了解了在 Spring 容器刷新之前初始化应用程序上下文的一些具体操作。
Huazie9 个月前
spring boot·源码学习·应用上下文初始化器实现
【Spring Boot 源码学习】深入应用上下文初始化器实现《Spring Boot 源码学习系列》前面的博文《ApplicationContextInitializer 详解》,Huazie 带大家详细分析了 ApplicationContextInitializer 的加载和初始化的逻辑,不过有关 ApplicationContextInitializer 接口的实现尚未提及 。那本篇 Huazie 就带大家一起分析 Spring Boot 中预置的应用上下文初始化器实现【即 ApplicationContextInitializer 接口实现类】的源码,了解
Huazie1 年前
spring boot·源码学习·scope·对象注册表
【Spring Boot 源码学习】BootstrapRegistry 详解《Spring Boot 源码学习系列》前面的博文《BootstrapRegistryInitializer 详解》,Huazie 带大家一起详细分析了 Spring Boot 启动时加载并初始化 BootstrapRegistryInitializer 及其相关的类的逻辑。其中有个 BootstrapRegistry 接口只是简单提及,本篇就详细分析一下 BootstrapRegistry 接口,这对于我们后续理解 《BootstrapRegistry 初始化器实现》的内容至关重要。
Huazie1 年前
spring boot·源码学习·spring应用类定制化介绍·基础配置·数据源配置
【Spring Boot 源码学习】SpringApplication 的定制化介绍Spring Boot 源码学习系列前面的博文,Huazie 带大家从 Spring Boot 的启动类 SpringApplication 上入手,了解了 SpringApplication 的实例化过程。这实例化构造过程中包含了各种初始化的操作,都是 Spring Boot 默认配置的。如果我们需要定制化配置,SpringApplication 也提供了相关的入口,且看下面的介绍。
Huazie1 年前
spring boot·应用上下文·源码学习·initializer
【Spring Boot 源码学习】ApplicationContextInitializer 详解Spring Boot 源码学习系列书接前文《初识 SpringApplication》,我们从 Spring Boot 的启动类 SpringApplication 上入手,了解了 SpringApplication 实例化过程。其中,《BootstrapRegistryInitializer 详解》 博文中,Huazie 已经带大家详细分析了 BootstrapRegistryInitializer 的加载和初始化过程,如下还有 2.4 和 2.5 这两处还未详细分析: 那本篇博文就主要围绕 2.4
Huazie1 年前
spring boot·源码学习·bootstrap注册表
【Spring Boot 源码学习】BootstrapRegistryInitializer 详解Spring Boot 源码学习系列书接前文《初识 SpringApplication》,我们从 Spring Boot 的启动类 SpringApplication 上入手,了解了 SpringApplication 实例化过程。其中,有如下三块内容还未详细分析: 本篇博文就主要围绕 2.3 的内容展开,详细分析一下加载并初始化 BootstrapRegistryInitializer 及其相关的类的逻辑。
Huazie1 年前
spring boot·源码学习·构造流程·启动入口类
【Spring Boot 源码学习】初识 SpringApplicationSpring Boot 源码学习系列往期的博文,Huazie 围绕 Spring Boot 的核心功能,带大家从总整体上了解 Spring Boot 自动配置的原理以及自动配置核心组件的运作过程。这些内容大家需要重点关注,只有了解这些基础的组件和功能,我们在后续集成其他三方类库的 Starters 时,才能够更加清晰地了解它们都运用了自动配置的哪些功能。
Huazie1 年前
spring boot·configuration·源码学习·jedisconnection
【Spring Boot 源码学习】JedisConnectionConfiguration 详解Spring Boot 源码学习系列上篇博文,Huazie 带大家从源码角度分析了 Spring Boot 内置的有关 Redis 的自动配置类【RedisAutoConfiguration】,其中有关 LettuceConnectionConfiguration 和 JedisConnectionConfiguration 这两个用于配置 Redis 连接的具体实现还未介绍。本篇就以我们常用的 Jedis 实现 为例,带大家详细分析一下 JedisConnectionConfiguration 配置类。
Huazie1 年前
spring boot·源码学习·redistemplate·redis自动配置类
【Spring Boot 源码学习】RedisAutoConfiguration 详解Spring Boot 源码学习系列上篇博文,Huazie 带大家从源码角度分析了 Spring Boot 内置的 http 编码功能,进一步熟悉了自动配置的装配流程。本篇趁热打铁,继续带大家分析 Spring Boot 内置的有关 Redis 的自动配置类【RedisAutoConfiguration】。
Huazie1 年前
spring boot·源码学习·http编码配置类·自定义字符编码映射
【Spring Boot 源码学习】HttpEncodingAutoConfiguration 详解Spring Boot 源码学习系列前面的博文,我们从源码角度介绍了自动装配流程。虽然带大家从整体上有了清晰的认识,但是我们还不能熟练地运用。本篇就以 Spring Boot 内置的 http 编码功能为例,来带大家分析一下 HttpEncodingAutoConfiguration 的整个自动配置的过程。
Huazie1 年前
spring boot·源码学习·condition·onbean
【Spring Boot 源码学习】OnBeanCondition 详解Spring Boot 源码学习系列上篇博文带大家从 Spring Boot 源码深入详解了 OnClassCondition,那本篇也同样从源码入手,带大家深入了解 OnBeanCondition 的过滤匹配实现。
Huazie1 年前
spring boot·源码学习·自动配置过滤匹配父类·classnamefilter
【Spring Boot 源码学习】深入 FilteringSpringBootConditionSpring Boot 源码学习系列前两篇博文笔者带大家从源码深入了解了 Spring Boot 的自动装配流程,其中自动配置过滤的实现由于篇幅限制,还未深入分析。
Hehuyi_In1 年前
postgresql·源码学习·wal日志·删除·重命名
postgresql源码学习(58)—— 删除or重命名WAL日志?这是一个问题最近因为WAL日志重命名踩到大坑,一直很纠结WAL日志在什么情况下会被删除,什么情况下会被重命名,钻研一下这个部分。