Spring框架笔记
2016/6/2 20:27:35 seventeenWen
什么是依赖?
A对象需要调用B对象的方法,叫做A对象依赖B对象,组件(Bean)A需要调用组件B的方法,也叫做A组件依赖B组件
Spring便提供了管理这种依赖的功能,
- Spring负责创建对象,管理所用的Java对象,这些对象统称为Bean
- Spring管理Bean之间的依赖关系,Spring使用的是叫做依赖注入的方式
什么是依赖注入?
首先搞清楚一件事,依赖注入也叫做控制反转,当我们需要调用另一个Java对象的方法时,我们有两种做法,
- new一个另一个对象,调用方法。
- 通过简单工厂方式,找到被调用对象的工厂,通过工厂获得对象,最后调用方法
很明显第一种方法,不利于维护,硬编码耦合,而第二种方法,对于简单工厂有三种要求:
- 面向接口编程。
- 将被依赖对象的创建交给工厂
- 调用者同过工厂获得被调用对象
通过工厂模式获得对象又会造成调用者和工厂的耦合,所以Spring框架就是把这种依赖关系转移,调用者不需要知道从哪调用,通过配置文件完成依赖关系。这就被叫做控制反转(IoC)
换种角度来看,Spring完成调用者的依赖对象的创建,相当于Spring为调用者注入它所依赖的对象。所以叫做依赖注入。
依赖注入有什么方式?
设值注入
是指Sprin通过成员变量的set方法来生成被调用对象,在主程序中只有调用者的对象,
构造注入
通过给定构造器参数的初始化来给成员变量赋值,Spring默认是调用无参的构造器的,我们要设置配置文件的<constructor-arg…>标签的
两种注入方式有什么区别?
创建被依赖对象的时机不同,设值注入是先调用无参的构造器,之后通过set方法完成注入,而构造注入是直接通过构造器完成注入。