spring源码概览
2021-10-13 15:15:46 25 举报
spring源码概览
作者其他创作
大纲/内容
BeanDefinitionReader
yaml
填充属性
设置Aware接口的属性
解析xml
定义规范,方便扩展
BeanFactoryPostProcessor
ApplicationContext ac = new ClassPathXmlApplicationContext(\"applicationContext.xml\");XXX xxx = ac.getBean(XXX.class);xxx.method();
BeanPostProcessor:bofore
populate
对象bean
BeanFactory
spring
context.getBean()
BeanFacatoryPostProcessor
反射
接口
Bean生命周期
springboot
Class.forName(完全限定名
内置对象Spring需要的对象
三级缓存
Environment
Aware接口到底是什么作用?当Spring容器创建的bean对象在进行具体操作的时候,如果需要容器的其他对象,此时可以将对象实现Aware接口,来满足当前的需要
DI依赖注入
BeanPostProcessor:after
singleton
Spring 框架 生态扩展性 为所欲为
容器
springcloud
实例化
AOP
BeanFactoryBean工厂,整个容器的根接口,也是容器的入口Constructor ctor = clazz.getConstructor();Object obj = ctor.newInstance();
prototype
都是用来创建对象的当使用BeanFactory的时候必须要遵循完整的创建过程,这个过程是由spring来管理控制的而使用FactoryBean只需要调用getObject就可以返回具体的对象,整个对象的创建过程是由用户自己来控制的,更加灵活
封装BeanDefinition
初始化
类名.class();
增强beanDefinition信息
getObject
session
BeanPostProcessor
在容器创建过程中需要动态的改变bean的信息怎么办<property name=url value=${jdbc.url}>如果想随时修改beanDeifinition怎么办?
springBean
<beans><bean id=? class=? abstract init-method scope dependon.....><property name=? value=?/><property name=?ref=?/></bean><bean id=? class=? abstract init-method scope dependon.....><constructor-arg name=? value=?/><constructor-arg name=?ref=?/></bean></beans>
Class
IOC控制反转
IOC
BeanDefinition
放到容器中
SpringBean
执行init-method方法
getObjectType
PostProcessor
Constructor ctor = clazz.getConstructor();Object obj = ctor.newInstance();
properties
IsSingleton
我们自定义需要的对象
Aware
加载xml
给属性设置值
完整对象
普通对象
init-method
beanDefinition
在不同的阶段要处理不同的工作,应该怎么办?观察者模式:监听器,监听事件,多播器(广播器)
创建对象
容器对象
解析处理环节
System.getProperties();
增强bean信息
从容器中获取
对象.getClass();
FactoryBean
在堆中开辟一块空间
xml
beanFactory和factoryBean的区别
scope
json
执行初始化方法
坑自己填先去看
Bean定义信息
Spring
Map
后置处理器增强器
StandardEnviroment
System.getEnv()
request
IOC容器
对象的属性值都是默认值
搞清楚
收藏
0 条评论
回复 删除
下一页