spring流程图
2021-03-27 22:16:34 10 举报
为你推荐
查看更多
spring 容器流程图
作者其他创作
大纲/内容
<bean id=\"a\" class=\"com.test.xmlbean.A\"><property name=\"name\" value=\"张三\"></property></bean><pre class = \"code\"><property name = \"url\" value = \"jdbc:${dbname}\"/></pre>
new/反射
bean定义信息BeanDefinition
通过processor创建代理对象
给属性完成赋值操作
可扩展性
为了方便使用,在容器创建的时候提前将系统相关属性加载到StandardEnviron对象中,方便后续使用
env
初始化
properties
完整bean对象
动态代理
实例化
BeanFactoryPostProcessor
Constructor ctor = clazz.getDeclareConstructor();Object instance = ctor.newInstance();
BeanPostProcessor
yml
Enivironment
在堆中开辟一块空间属性都是默认值
实例化bean
循环依赖需要三级缓存
允许自定义修改application context的Bean定义,调整application context的基础Bean工厂的Bean属性值。比如替换xml中jdbc ${url} ${password}
核心方法ApplicationContext的refresh方法
AOP
cglib
填充属性
beanFactory(一个访问spring容器的根接口)
PostProcessor增强器/后置处理器
postProcessBeforeInitialization
调用具体的初始化方法
xml
jdk
填充属性,赋值
beanFactory:对象工厂,根据bean的定义(对象模板),经过工厂加工,生成对象实例factoryBean:一种扩展,使得生成的对象可以扩展,修改
IOC Container
PlaceholderConfigurerSupportBeanFactoryPostProcessor
postProcessAfterInitialization
初始化bean执行init方法
BeanDefinitionReader
抽象接口定义读取配置文件的规范
json
反射:先获取Class对象Class clazz = Class.forName(\"完全限定名\")Class clazz = 对象.getClass();Class clazz = 类.class;Constructor ctor = clazz.getDeclareConstructor();Object instance = ctor.newInstance();
0 条评论
回复 删除
下一页