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的生命周期——解耦,提高并发性能