AI
推荐
模板社区
专题
登录
免费注册
首页
思维导图
详情
Spring知识汇总
2021-04-18 14:30:05
5
举报
分享方式
免费使用
AI智能生成
Spring相关的拓展点以及生命周期的概括图
Spring
生命周期
拓展点
运行流程
面试
模板推荐
作者其他创作
大纲/内容
Bean的生命周期
实例化
BeanPostProcess<br>
postProcessBeforeInitialization
属性注入<br>
判断是否有Spring拓展方法
BeanNameAware
BeanFactoryAware
ApplicationContextAware
Spring的执行处理器[InstantiationAwareBeanPostProcessor]
postProcessPropertyValues<br>
初始化
InitializingBean<br>
afterPropertiesSet()
BeanPostProcessor
10. postProcessAfterInitialization(Object bean, String beanName)
服务
销毁
DisposableBean
destroy
容器关闭后,销毁的方法
IOC启动流程
定位<br>
读取配置
xml中的<bean>
ComponentScan扫描的位置<br>
加载
将定位到的所有bean构建成BeanDefinition对象,方便容器识别处理
注册
将加载的BeanDefinition对象加入到容器进行管理<br>
内置Bean
监听器
实例化<br>
注入
初始化
SpringBoot
如何自带容器?
ServletWebServerFactory<br>
TomcatServletWebServerFactory<br>
UndertowServletWebServerFactory
JettyServletWebServerFactory
Spring的内置对象暴露
BeanNameAware<br>
setBeanName
BeanFactoryAware
setBeanFactory(BeanFactory beanFactory)
ApplicationContextAware
setApplicationContext(ApplicationContext applicationContext)
BeanFactoryPostProcessor<br>
postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory)
实例化
InstantiationAwareBeanPostProcessor<br>
postProcessBeforeInstantiation(Class<?>; beanClass, String beanName)
得到bean的class阶段
postProcessAfterInstantiation(Object bean, String beanName)
实例化阶段
postProcessPropertyValues(PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName)
属性注入阶段
BeanPostProcessor<br>
postProcessBeforeInitialization(Object bean, String beanName)
实例化完成阶段
InitializingBean
afterPropertiesSet()
调用初始化方法
BeanPostProcessor<br>
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<br>
核心的启动流程入口
org.springframework.web.servlet.DispatcherServlet#initStrategies<br>
org.springframework.boot.autoconfigure.web.servlet.DispatcherServletRegistrationBean<br>
启动流程
构建文件上传的解析器<br>
构建多语言解析器<br>
构建主题样式解析器
初始化Mapper与handler的映射<br>
初始化Handler的选择适配<br>
初始化Handler的异常解析器<br>
初始化Handler的视图与名称解析器<br>
初始化视图解析器<br>
收藏
立即使用
kafka 索引文件执行流程
收藏
立即使用
jvm-sandbox-repeater 实现以及思考
收藏
立即使用
Redis
收藏
立即使用
Kafka客户端整体流程
凯雄
职业:一砖一码
去主页
Collect
Get Started
Spring
Collect
Get Started
创建指标汇总模板
Collect
Get Started
毛利润汇总
Collect
Get Started
结构章节知识汇总
评论
0
条评论
下一页
图形选择
思维导图
主题
补充说明
AI生成
修改AI描述
去编辑
重新生成
提示
关闭后当前内容将不会保存,是否继续?
取消
确定
Document