spring-ioc-di-aop
2019-08-02 15:21:16 40 举报
仅仅作为一个笔记使用参考以及学习
作者其他创作
大纲/内容
将配置文件载入到内存
BeanDefinitionValueResolver
实例化
registerBeanDefinition()
读取元数据
BeanFactory
setValue
返回AopProxy
开始解析配置文件
//Bean读取器真正实现加载的方法loadBeanDefinitions()
postProcessBeforeInitialization()postProcessAfterInitialization()
调用ClassPathXmlApplicationContext的构造方法
开始向容器注册
DefaultAopProxyFactory
AbstractAutowireCapableBeanFactory自动装配的beanFactory实现类
findEligibleAdvisors
OrderComparator
doCrateBean()
wrapIfNecessary
AbstractAdvisorAutoProxyCreator
ReflectiveMethodInvocation
容器启动开始
AbstractAutoProxyCreator
ClassPathXmlApplicationContext
DefaultListableBeanFactory
createBean()
解析注入规则
JdkDynamicAopProxy
createAopProxy
定位扫描bean
populateBean()
refresh()
AbstractXmlApplicationContext
applyPropertyValues,依赖注入方法
invoke
BeanDefinitionParserDelegate
getAdvicesAndAdvisorsForBean
refreshBeanFactory();
instantiate()
setPropertyValues
基于注解方式的IOC方式:
选择实例化策略
加载
调用方法
获取配置文件路径
载入property子元素
载入配置文件路径
getInterceptorsAndDynamicInterceptionAdvice
解析
proceed
载入bean元素
createProxy
创建代理对象
AbstractRefreshableConfigApplicationContext
载入list元素
BeanWrapperImpl
寻找入口
AdvisedSupport
开始实例化
返回了一个BeanWrapper
setPropertyValue
getBean
SimpleInstantiationStrategy
准备依赖注入
registerBeanDefinitions()
选择策略
注册
obtainFreshBeanFactory()
doLoadBeanDefinitions()
调用顺序的问题????
beanDefinitionMap
分配注册策略
定位
resolveValueIfNecessary
ProxyFactory
解析配置文件路径
触发通知
调用具体方法
applyBeanPostProcessorsBeforeInitialization()前置applyBeanPostProcessorsAfterInitialization()后置
注入
doGetBean
createBeanInstance()
getProxy
MethodBeforeAdviceInterceptor
sort
AbstractNestablePropertyAccessor
AbstractApplicationContext(继承DefaultResourceLoader)是一个资源加载器和容器
分配路径处理策略
加载配置文件信息
AbstractPropertyAccessor
XmlBeanDefinitionReader
AbstractAutowireCapableBeanFactory
AbstractBeanFactory
initializeBean
setConfigLocations(configLocations)
DefaultBeanDefinitionDocumentReader
注入赋值
instantiateBean
载入property元素
执行实例化
parseBeanDefinitionElement()
分配解析配置文件策略
0 条评论
回复 删除
下一页