Environment是Spring Framework中提供的一个接口,旨在为属性获取提供一个统一的接口。不管是在Spring Framework,还是在Spring Boot,甚至在Spring Cloud中,很多地方都能见到该接口及其实现类,所以熟悉该接口的内部实现还是很有必要的。
ConfigurationClassParser类会被ConfigurationClassPostProcessor用来处理配置类,可以说该类完成了registry后置逻辑的大部分工作。本文分析该类的主要工作流程和实现原理。
在Spring Boot中HttpHandler的创建过程一文中,介绍到在WebFluxConfigurationSupport类中会向bean工厂中注册DispatcherHandler类型的bean。在创建后Spring会对该bean进行初始化,以满足处理请求的需要。本文就来分析一下初始化过程中做了哪些事情。
其实WebFlux也和WebMvc一样,有一套请求的处理流程,而且两套流程也很相似。都是先获取handler方法,再获取handler适配器,然后通过handler适配器调用handler方法,最后处理结果。本文就来分析一下该过程具体的实现。
从Servlet容器到我们编写的handler方法,Spring帮我们做了很多事情。比如根据请求URL查找到目标handler方法,参数的类型转换及绑定,调用handler方法,以及返回值写回响应等等操作。本文就来分析一下这个过程中Spring到底帮我们做了哪些事情,以及是怎么做的。
在分析请求的处理流程之前,还是很有必要清楚DispatcherServlet的初始化过程是怎么回事,毕竟这个过程会初始化很多处理请求的组件,不然不知道这些组件是在什么之后以及怎么样被创建的。所以本文以Servlet规范的init方法作为入口,分析一下整个DispatcherServlet的初始化过程。
不管是传统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的定义,而是在它的构造方法中有一个关键操作,本文就来看一下这个关键操作是什么。