Spring知识汇总
2021-04-18 14:30:05 5 举报
AI智能生成
Spring相关的拓展点以及生命周期的概括图
作者其他创作
大纲/内容
Bean的生命周期
实例化
BeanPostProcess
postProcessBeforeInitialization
属性注入
判断是否有Spring拓展方法
BeanNameAware
BeanFactoryAware
ApplicationContextAware
Spring的执行处理器[InstantiationAwareBeanPostProcessor]
postProcessPropertyValues
初始化
InitializingBean
afterPropertiesSet()
BeanPostProcessor
10. postProcessAfterInitialization(Object bean, String beanName)
服务
销毁
DisposableBean
destroy
容器关闭后,销毁的方法
IOC启动流程
定位
读取配置
xml中的<bean>
ComponentScan扫描的位置
加载
将定位到的所有bean构建成BeanDefinition对象,方便容器识别处理
注册
将加载的BeanDefinition对象加入到容器进行管理
内置Bean
监听器
实例化
注入
初始化
SpringBoot
如何自带容器?
ServletWebServerFactory
TomcatServletWebServerFactory
UndertowServletWebServerFactory
JettyServletWebServerFactory
Spring的内置对象暴露
BeanNameAware
setBeanName
BeanFactoryAware
setBeanFactory(BeanFactory beanFactory)
ApplicationContextAware
setApplicationContext(ApplicationContext applicationContext)
BeanFactoryPostProcessor
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
实例化
InstantiationAwareBeanPostProcessor
postProcessBeforeInstantiation(Class<?>; beanClass, String beanName)
得到bean的class阶段
postProcessAfterInstantiation(Object bean, String beanName)
实例化阶段
postProcessPropertyValues(PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName)
属性注入阶段
BeanPostProcessor
postProcessBeforeInitialization(Object bean, String beanName)
实例化完成阶段
InitializingBean
afterPropertiesSet()
调用初始化方法
BeanPostProcessor
10. postProcessAfterInitialization(Object bean, String beanName)
实例化初始化完成阶段,这个阶段基本上已经完成代理了
DisposableBean
destroy
容器关闭后,销毁的方法
Spring的各个阶段
BeanDefinition阶段
描述
这个阶段是从配置文件(xml、注解等)将类的属性构建成BeanDefinition对象。
容器
BeanDefinitionRegistry
执行器
BeanDefinitionRegistryPostProcessor
案例
Mybatis
1. MapperScannerConfigurer
一般是用于处理自定义的BeanDefinition对象,并将它注册到工厂当中去
2. Bean工厂阶段
描述
这个是整个容器的工厂对象,该对象不仅存放着BeanDefinition,也有Bean对象存放地方。
容器
ConfigurableListableBeanFactory
执行器
BeanFactoryPostProcessor
这个阶段是在BeanDefinition已经被全部加载完成了,如果你需要改变某个写BeanDefintion的属性或者工厂的一些全局属性,可以通过实现该接口去实现.
案例
CustomScopeConfigurer
CacheManagerValidatorPostProcessor
Bean阶段
描述
这个阶段是将BeanDefinition实例化成Bean的阶段。
执行器
BeanPostProcessor
postProcessBeforeInitialization
init方法执行之前,可以为该对象设置一些特定的值
案例
1. ApplicationContextAwareProcessor
如果该bean实现了Aware接口,那么会为他设置一些类似于ApplicationContextAware的值
postProcessAfterInitialization
init方法执行之后,所有属性都已经被填充完整,基本上相当于已经new完了,set完了。
案例
动态代理
AbstractAutoProxyCreator
SpringMVC
核心的主入口
org.springframework.web.servlet.DispatcherServlet
核心的启动流程入口
org.springframework.web.servlet.DispatcherServlet#initStrategies
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean
启动流程
构建文件上传的解析器
构建多语言解析器
构建主题样式解析器
初始化Mapper与handler的映射
初始化Handler的选择适配
初始化Handler的异常解析器
初始化Handler的视图与名称解析器
初始化视图解析器
0 条评论
下一页