1.1 简介
首先学习一种东西要了解整体结构,在大脑里面有个整体框架,然后在局部一块块突破它,先看看Spring的常用模块:
1、特征:
概念:
1、简单老式的java对象: POJO(plain old java object)
2、一个Spring组件可以是任何形式的的POJO (我的理解组件==POJO==类)
3、装配(wiring):创建应用组件之间的协作的行为
4、Spring应用上下文(Application context)全权负责对对象的创建与组装
5、依赖注入(DI—Dependency Injection)
理解DI的关键是:“谁依赖谁,为什么需要依赖,谁注入谁,注入了什么”,那我们来深入分析一下:
谁依赖于谁:当然是应用程序依赖于IoC容器;
为什么需要依赖:应用程序需要IoC容器来提供对象需要的外部资源;
谁注入谁:很明显是IoC容器注入应用程序某个对象,应用程序依赖的对象;
注入了什么:就是注入某个对象所需要的外部资源(包括对象、资源、常量数据)。
6、控制反转(Ioc—Inversion of Control)不是什么技术,而是一种设计思想
理解好Ioc的关键是要明确“谁控制谁,控制什么,为何是反转(有反转就应该有正转了),哪些方面反转了:
谁控制谁,控制什么:传统Java SE程序设计,我们直接在对象内部通过new进行创建对象,是程序主动去创建依赖对象;而IoC是有专门一个容器来创建这些对象,即由Ioc容器来控制对象的创建;谁控制谁?当然是IoC 容器控制了对象;控制什么?那就是主要控制了外部资源获取(不只是对象包括比如文件等)。
为何是反转,哪些方面反转了:有反转就有正转,传统应用程序是由我们自己在对象中主动控制去直接获取依赖对象,也就是正转;而反转则是由容器来帮忙创建及注入依赖对象;为何是反转?因为由容器帮我们查找及注入依赖对象,对象只是被动的接受依赖对象,所以是反转;哪些方面反转了?依赖对象的获取被反转了。
7、IoC和DI由什么关系呢?其实它们是同一个概念的
不同角度描述,由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以2004年大师级人物Martin Fowler又给出了一个新的名字:“依赖注入”,相对IoC 而言,“依赖注入”明确描述了“被注入对象依赖IoC容器配置依赖对象”。
8、Spring容器负责创建对象,装配它们,配置它们并管理它们的生命周期
9、写过java的都知道:所有的对象都必须创建;或者说:使用对象之前必须先创建。而使用ioc之后,你就可以不再手动创建对象,而是从ioc容器中直接获取对象。
集成第三方框架:
常用注解:
Ioc的容器:
BeanFactory与ApplacationContext的区别:
根据实际项目整理的一些思考,肯定不全,以后继续补充
https://jinnianshilongnian.iteye.com/blog/1413846