spring架构源码:

时间:2021-08-02 14:20:29

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 }
p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px }
p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px ".PingFang SC"; color: #454545 }
span.s1 { font: 12.0px ".PingFang SC" }
span.s2 { font: 12.0px "Helvetica Neue" }
span.Apple-tab-span { white-space: pre }

xmlBeanDefinitionReader:

1.loadBeanDefinitions — —> doLoadBeanDefinitions ——> registerBeanDefinitions

DefaultBeanDefinitionDocumentReader

1.registerBeanDefinitions — —> doRegisterBeanDefinitions (AOP思想) ——> parseBeanDefinitions

— —> parseDefaultElement

— —> processBeanDefinition:

BeanDefinitionReaderUtils.registerBeanDefinition(注册bean)

DefaultListableBeanFactory:

1.registerBeanDefinition:由ConcurrentHashMap管理bean(创建,更新,销毁等等) — — 工厂模式

设计:BeanDefinition(抽象),BeanFactory等等构成

bean的创建是通过bean的解析,校验然后通过BeanDefinitionReaderUtils生成,并用BeanDefinition包装

spring会帮你管理bean以及bean的依赖

spring:事务管理,持久化等等

1.threadlocal解决带状态的bean问题(线程局部变量)

2.DI或IOC容器:通过工厂模式实现(反射),动态注入需要的依赖,管理bean的生命周期——解耦,提高并发性能