我们在使用MyBatis的时候,会使用@MapperScan注解来指定mapper接口所在的包路径,MyBatis会自动扫描该路径下的接口,并创建mapper对象。本文先分析一下MyBatis是怎么扫描到这些接口的,下篇文章再来分析是怎么创建mapper对象的。
和众多其他中间件一样,Redis也是采用的事件驱动。在Redis服务端启动后,最后会进入一个事件循环,在该循环内不断地处理事件,Redis支持两种事件:文件事件和时间事件。本文分析一下Redis中的事件循环的实现。
NioServerSocketChannel是Netty中的一种服务端网络通道,是一种最常被使用的通道类型。本文会分析该类对象的创建过程是怎样的,以及是怎么实现地址绑定和监听,和怎么接受客户端的连接请求的。
NioEventLoopGroup是Netty中最常被使用的一种事件循环组,本文分析一下该类型的对象是怎么创建的,以及在内部是怎么创建事件循环EventLoop的。
Spring Boot以零配置、开箱即用的特性而闻名。开发者只需在主类上添加@SpringBootApplication注解,然后在外化配置文件(比如application.yml)中创建独立的配置,就能成功启动应用,避免了传统SSM应用中的繁琐的XML配置。这样的便利性其实是建立在Spring Boot强大的自动配置机制上实现的,本文就来分析一下Spring Boot中自动配置的原理。
不管是传统SSM应用中使用XML的配置方式(context命名空间中的component-scan标签),还是Spring Boot中的注解配置方式(@ComponentScan),一般都会使用包扫描,也就是扫描某个包下的所有组件bean。本文就来看看是怎么扫描的,又是怎么注册到bean工厂中的。
ConfigurationClassPostProcessor是Spring Framework中的一个bean工厂后置处理器,而且还是一个registry后置处理器,Spring Framework和Spring Boot中的很多功能都是由该类来实现的,可以说该类十分强大。本文就来分析一下该类都做了哪些操作,以及是怎么做的。
在应用上下文的主refresh方法中,专门有一个步骤是用来注册BeanPostProcessor类型的bean,大体过程就是从bean工厂获取该类型的bean然后设置到专门的属性中。本文就来看一下这个注册过程是怎样的。
在Spring Boot中,不管是servlet还是reactive类型的应用上下文的构造器中都会创建该对象,倒不是说要考它来读取bean的定义,而是在它的构造方法中有一个关键操作,本文就来看一下这个关键操作是什么。
Spring中的BeanFactoryPostProcessor(被称为bean工厂后置处理器)旨在实例化bean之前,对bean的定义进行修改和扩展。本文不会分析具体的bean工厂后置处理器是怎么执行的,而是怎么被执行到的。