Spring
不惧不惑
这个作者很懒,什么都没留下…
展开
-
SpringMVC扩展点和案例说明
SpringMVC扩展点和案例说明RequestMappingHandlerMapping 扩展点场景一:为URI统一加版本控制二级目录三级目录RequestMappingHandlerMapping 扩展点重写这个类的扩展点如下:public class CustRequeMappingHandlerMapping extends RequestMappingHandlerMapping { //判断是否是处理的方法:基本上不需要重写 @Override protected原创 2020-11-09 22:18:16 · 1073 阅读 · 0 评论 -
MappingJackson2HttpMessageConverter使用及jackson配置原理和避坑说明
MappingJackson2HttpMessageConverter消息转换器创建和生效原理HttpMessageConverters对象的创建使用WebMvcConfigurationSupport配置时转换器创建过程使用WebMvcAutoConfiguration配置时转换器创建过程MappingJackson2HttpMessageConverter的配置使用WebMvcConfigurationSupport配置时使用WebMvcAutoConfiguration配置时MappingJackso原创 2020-11-05 19:24:13 · 40173 阅读 · 4 评论 -
RequestResponseBodyMethodProcessor类源码解析
RequestResponseBodyMethodProcessor类源码解析参数解析器接口实现逻辑返回值处理器接口解析逻辑这个类用于解析@RequestBody入参和@ResponseBody返回值解析问题。先查看一些类继承结构图:如上图描述,以上几个类作用标记如图。标记几个类的有部分相同的代码逻辑,同时也只有以上几种情况下@ControllerAdvice注解的切面才会生效,其余情况不会的入参和返回值不会对其产生作用。参数解析器接口实现逻辑HandlerMethodArgumentResol原创 2020-11-04 22:10:00 · 3875 阅读 · 0 评论 -
SpringMVC请求执行全流程源码解析
SpringMVC请求执行全流程源码解析前置概念父子容器概念springMVC核心过滤器DispatcherServletDispatcherServlet类的源码解析初始化过程请求处理流程请求入口DispatcherServlet处理方法doServiceDispatcherServlet处理请求的核心流程获取处理器执行链1. 获取处理器映射器,用于获取处理器执行链2.通过映射器获取处理器和拦截器封装成处理器执行链3.获取处理器的流程3.1 获取请求uri3.2 通过请求参数和路径查找处理器获取处理器适配原创 2020-11-03 10:35:36 · 860 阅读 · 0 评论 -
RequestMappingHandlerAdapter源码解析
RequestMappingHandlerAdapter源码解析构造方法初始化流程扩展总结方法入参绑定使用注解和默认支持注入对象:扩展接口开发构造方法//构造方法初始化消息转换器public RequestMappingHandlerAdapter() { StringHttpMessageConverter stringHttpMessageConverter = new StringHttpMessageConverter(); stringHttpMessageConverter.setWr原创 2020-10-29 15:31:13 · 463 阅读 · 0 评论 -
SpringMVC HandlerMapping(处理器映射器)常用实现类源码详解
SpringMVC 处理器映射器常用实现类源码详解处理器的三种实现方式方式一:最常用的方式@RequestMapping注解方式方式二:使用BeanName方式方式三:使用SimpleUrl方式三种处理器映射器的初始化源码分析RequestMappingHandlerMapping初始化过程源码解析BeanNameUrlHandlerMapping初始化过程源码解析SimpleUrlHandlerMapping初始化过程源码解析处理器的三种实现方式处理器就是SpringMVC中的Controller ,原创 2020-10-27 23:25:15 · 630 阅读 · 0 评论 -
SpringMVC自动配置类避坑及源码详解
SpringMVC自动配置类WebMvcAutoConfiguration类介绍二级目录三级目录在SpringBoot中SpringMVC默认自动配置了在spring-boot-autoconfigure.jar/META-INF/spring.factories中看到如下:本文主要介绍mvc配置类org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration,这个类中定义了默认的配置,例如静态资源文件的访问。We原创 2020-10-26 22:25:18 · 2919 阅读 · 0 评论 -
@Configuration配置类的full和lite模式
full和lite模式在之前Spring核心后置处理器ConfigurationClassPostProcessor文章中提到过这两个属性,这里再次拿出来说明。@Configuration注解标记的类是配置类,Bean定义信息被标记为full 类型注解@Component @ComponentScan @Import @ImportResource 标注的类是配置类,Bean定义信息被标记为lite 类型类中的方法被@Bean注解标记的类也是配置类,Bean定义信息被标记为lite 类型lite模原创 2020-10-21 21:10:19 · 1842 阅读 · 0 评论 -
Spring核心后置处理器ConfigurationClassPostProcessor
ConfigurationClassPostProcessorConfigurationClassPostProcessor类层次postProcessBeanDefinitionRegistry方法(核心)processConfigBeanDefinitions方法解析的核心方法doProcessConfigurationClassloadBeanDefinitions方法加载BeanDefinitionregisterBeanDefinitionForImportedConfigurationClass原创 2020-10-21 16:34:30 · 428 阅读 · 0 评论 -
在spring中玩转自定义注解
这里写目录标题1.注解扫描生效原理2.基于@Component元注解开发自定义注解2.1 开发注解,使用component作为元注解2.2 实现InstantiationAwareBeanPostProcessor接口,实现自定义创建对象进行注册3.基于注解扫描开发自定义注解1.注解扫描生效原理ClassPathScanningCandidateComponentProvider类:这个类的主要作用是进行包扫描,可以指定扫描的包和特定的类,默认扫描路径是类路径,且扫描的是Component注解标记的类或原创 2020-09-03 17:34:36 · 667 阅读 · 0 评论 -
Sping IOC容器启动流程和扩展点源码分析
Sping容器IOC流程源码分析Spring主流程方法refreshfinishBeanFactoryInitialization方法preInstantiateSingletons方法getSingleton(beanName)方法getBean(beanName)方法createBean(beanName, mbd, args)方法resolveBeforeInstantiation方法(后置处理器接口进行逻辑处理解析)getSingleton(String beanName, ObjectFactor原创 2020-10-13 21:43:00 · 150 阅读 · 0 评论 -
Spring循环依赖解决源码解析
Spring循环依赖解决无法解决的循环依赖的方式循环依赖解决原理----三级缓存解决步骤相关方法无法解决的循环依赖的方式1) Spring无法解决构造方法注入引起的循环依赖问题2) Spring无法解决多例对象的循环依赖问题,因为多例对象是不进行缓存的循环依赖解决原理----三级缓存//第一级缓存:缓存已经完成了实例化和属性设置的单例对象(单例对象缓存)private final Map<String, Object> singletonObjects = new Concurren原创 2020-10-13 21:53:13 · 142 阅读 · 0 评论