spring为实现Aware接口的自动设置相关属性的操作
来源:互联网 发布:叶翔全职乐乎 编辑:程序博客网 时间:2024/06/05 03:04
AbstractApplicationContext.refresh->finishBeanFactoryInitialization->beanFactory.preInstantiateSingletons()->getBean->doGetBean->getSingleton->singletonFactory.getObject()->createBean->doCreateBean->initializeBean
1. initializeBean的时候调用invokeAwareMethods(beanName, bean);(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(String, Object, RootBeanDefinition))
这时会:
1.1 调用BeanNameAware的setBeanName(beanName)方法
1.2 调用BeanClassLoaderAwarere的setBeanClassLoader(getBeanClassLoader())方法
1.3 调用BeanFactoryAware的setBeanFactory(AbstractAutowireCapableBeanFactory(AbstractAutowireCapableBeanFactory.this)方法
2 initializeBean的时候调用applyBeanPostProcessorsBeforeInitialization(wrappedBean, beanName),获取BeanPostProcessors,然后遍历调用每个posetProcessor的postProcessBeforeInitialization方法;org.springframework.context.support.ApplicationContextAwareProcessor的postProcessBeforeInitialization(Object, String)方法会执行invokeAwareInterfaces(bean)
这时会:
2.1 调用EnvironmentAware的setEnvironment(this.applicationContext.getEnvironment())方法
2.2 调用EmbeddedValueResolverAware的setEmbeddedValueResolver(new EmbeddedValueResolver(this.applicationContext.getBeanFactory())方法
2.3 调用ResourceLoaderAware的setResourceLoader(this.applicationContext)方法
2.4 调用ApplicationEventPublisherAware的setApplicationEventPublisher(this.applicationContext)方法
2.5 调用MessageSourceAware的setMessageSource(this.applicationContext)方法
2.6 调用ApplicationContextAware的setApplicationContext(this.applicationContext)方法
org.springframework.web.context.support.ServletContextAwareProcessor的postProcessBeforeInitialization(Object, String)中会完成:
2.7 调用ServletContextAware的setServletContext(getServletContext())方法
2.8 调用ServletConfigAware的setServletConfig(getServletConfig())方法
- spring为实现Aware接口的自动设置相关属性的操作
- Aware相关的接口
- Spring实现Aware接口,完成对IOC容器的感知
- spring入门 - Aware相关接口
- spring入门 - Aware相关接口
- Spring aware相关接口 浅析
- Spring中Aware接口的使用
- spring常用的几个aware bean接口:
- Spring入门(Bean的Aware接口)
- Spring入门15 - Aware相关接口
- Spring中提供一些Aware相关接口
- 【Spring学习26】Aware相关接口
- spring源码分析:Aware接口让你的bean对容器直接操作
- spring aware的使用;spring aware 各种接口的作用解析
- Spring之Bean实现了ApplicationContextAware等aware接口,对于setApplicationContext方法执行时间点的说明
- spring的Aware
- Spring的Aware
- spring-aware接口
- SpringMVC入门学习
- Elasticsearch 5.6.1 发布,分布式搜索引擎
- GPS、Wifi等各种手机定位方式的含义及原理详解
- Faster-RCNN_TF代码解读18:generate_anchors.py
- 高速公路ETC卡签之我见1-概述
- spring为实现Aware接口的自动设置相关属性的操作
- Sublime 使用 input
- 闭包
- 图片位深度解析
- Android导入第三方库出现问题
- eclipse运行时取消console窗口弹出
- 改变--前言
- h3c
- 百度echarts实现标识线或者基准线实现方法