言简意赅,以梳理和领会其精神为主。
首先,熟悉java开发的人都知道Spring,所以不在赘述。但是其作者和目的还是要了解的
Spring:作者:Rod Johnson
目的:减少开发人员花费在软件技术上的时间,把精力放在业务本身的理解
特点: 1.分层 2.与其他技术无缝结合 3.一站式开发框架
核心:控制反转,1.通过配置文件来完成业务对象之间的以来注入问题。2.面向接口,而不是面向类。
这样的好处在这里用的说一下:在早期开发的过程中或者我们在进行逻辑的编写是要用到之前封好数据对象类,这时我需要new 该对象(); 然后再使用改类的实例也就是该对象之前提供的get,set方法完成其属性的获取和赋值。这时,我得这个业务逻辑类(A)与数据类(B)就有了“剪不断,理还乱”的关系,比如,现任的男女朋友,而假设他们在相处一段时间之后,发现感情破裂,俩个人不在相互需要,而是找到了另外适合自己的人,但是,通过之前的类之间的依赖,使得B永远都要继续跟着A。在对A进行初始化的时候,不得不去new B 这样显然不是我们想要的结果。而这时A想,我想谁谁来,不想谁,谁也不要来,这个时候怎么办呢。Spring满足了他的要求。
Spring 在对象与对象之间加了一个接口,那么接口:简单是说,有内部操作分离出来对外的沟通方式,只能受内部操作的影响,而不影响外部实体与其进行沟通的方式。
我们一些操作或者数据都实现一个接口,而我得主业务在使用相应的数据或者相关操作的时候,把这样的接口注入进来,那么我就可以操作这个接口对应的所有功能,而调用与被调用相互之间互不影响,这就是所谓的控制反转IOC,或者依赖注入DI
而书中“他们反转了那些方面的控制”,就是这一概念的由来,也就是依赖注入DI
什么是依赖注入?
就是让组件依赖于抽象,当组件要与其他时间对象发生依赖关系的时候,通过对象来注入依赖的实际对象。
三种方式:
1.接口注入
接口{
法A();
}
业务逻辑类 实现 接口{
private 注入的类 B b
@override
方法A(B b){
this.b=b };
}
get(){
}
2.set注入
set注入,就是在接收注入的类中定义一个set方法,在参数中定义需要注入的元素
3.构造器注入
就是在接收注入的类中定义一个构造方法,并在参数中定义需要注入的元素
此方法注入需要在xml文件中修改配置方式
使用那个方法注入:
1.构造注入:在构建对象的同时一并完成依赖关系的建立,对象一建立,所有的资源准备就绪,但是如果要建立的对象关系跟多,使用构造注入会在构建函数上留下一长串的参数,不方便记忆,这是使用set注入
2..set注入:有明确的名称,可以了解注入的对象是什么,但是由于提供了set方法,所以不保证相关数据成员或资源在执行时不会被更改,所以开发人员想要让数据成员变为私有,或者只读,使用构造注入
以上是对spring的初步认识