Nacos的服务端整合了Spring Boot框架,其利用了Spring中的一些扩展点来实现启动过程中需要完成的操作。本文会分析Nacos是怎么创建和启动gRPC服务的,以及是怎么扫描、注册和映射处理请求的handler的。
在Nacos中服务端gRPC服务的启动过程一文中,介绍到gRPC启动之前会进行服务注册。当接收到服务时,会调用handler来处理。当接收到一元服务时,所要执行的handler是通过本文介绍的GrpcRequestAcceptor来处理的,本文来分析一下它是怎么工作的。
在Netty的客户端通信中,一般会使用NioSocketChannel作为通道类型;另外在服务端,NioServerSocketChannel也会使用该类型的通道表示客户端的连接请求。本文分析一下该类的实现原理。
我们在使用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中的很多功能都是由该类来实现的,可以说该类十分强大。本文就来分析一下该类都做了哪些操作,以及是怎么做的。