说到这个spring,首先要搞清楚没有spring之前我们是什么样子的哈
a、很多设计模式需要自己去整合
b、所有的封装、继承、多态、增强、依赖、模块管理等等工作都需要自己制定统一的规则
c、所有的创建对象、配置依赖关系、资源的重复利用都需要我们手动去搞
我滴个天,看着都累、这的做多少重复的工作。人是懒惰的,不想重复造轮子呀,所以Spring出现了,Java程序员的春天真的来了,解放了
细节来了,spring做了什么?让 Java Bean能够实现无缝对接、闭上眼睛幻想一下,有没有这么一个东西、我们的所有bean 初始化就都准备好了,只是存在一个地方、用的时候就自动来了~正所谓召之即来。想想都香、简直是人工智能。
幸运的是,spring就做到了。这个得益于spring的IOC容器,ioc小名bean工厂,在具体点就是一个(Map容器–ps:实际存在 ConcurrentHashMap)、缓存bean 的地方。这么搞得优点显而易见,时刻在内存中放着、用的时候不需要临时创建,速度那是杠杠的~
用抽象点的语言描述:
1、IOC(Inversion of Control)控制反转:所谓控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。那么必然的我们需要创建一个容器,同时需要一种描述来让容器知 道需要创建的对象与对象的关系。这个描述最具体表现就是我们可配置的文件。
简单点说就是容器帮我们创建bean,并理清楚bean与bean之前的关系,最后存起来供我们使用。如何创建?如何存?通过啥规则顺序加载?
总结:ioc 全局上下文缓存的信息 IOC容器何时创建bean、各个bean的关系、怎么存储bean
spring容器是整个spring框架的核心,通常我们说的spring容器就是bean工厂
bean工厂负责创建和初始化bean、装配bean
见识一下bean长啥样子?
ApplicationContext(XmlWebApplicationContext :-Root WebApplicationContext startup)
serializationde==org.springframework.web.context.WebApplicationContext:
-—beanFactory
--beanDefinitionMap(ConcurrentHashMap ===key:value)
ApplicationContext,这是在BeanFactory基础之上,面向使用Spring框架的开发者。提供了一系列的功能!
1、"key:restTemplate" -> "Root bean: class [null]; scope=; abstract=false; lazyInit=false; autowireMode&#