Spring——DI(依赖注入)/Ioc(控制反转)
来源:互联网 发布:mac命令行终端 代理 编辑:程序博客网 时间:2024/06/11 08:17
DI(Dependency Injection):依赖注入
在运行期间,由外部容器动态地将依赖对象注入到组件中;
Ioc(Inversion of control):控制反转
应用本身不负责依赖对象的创建及维护,依赖对象的创建和维护是由外部容器负责的。这样控制权就由应用本身转移到了外部容器,控制权的转移就是所谓的反转。例如:
最开始的代码:
public class GoodService{
public void save(){
//主动获取
GoodDAO goodDAO = new GoodDAO();
goodDAO.save();
}}
主动获取的方式,控制权在GoodService类中。硬编码方式。
NOW:
public class GoodService{
private GoodDAO goodDAO;
//set/get方法省略
public void save(){
goodDAO.save();
}}
GoodService获得一个GoodDAO编程被动接受。
从主动获取变成被动接受,控制权是不是变化了?IOC
Ioc控制反转,获得GoodDAO对象(依赖对象)的方式变成外部注入。
使用Spring框架实现Ioc/DI
1、导入Spring框架;
2、在配置文件中创建实例
<bean class="com.no1.dao.GoodsDAO" id="GoodsDAO"/>
class:表示类名。
id/name:实例名称
3、获得Spring配置的实例1 applicationContext类。
newFileSystemXMLApplicationContext("src/applicationContext.xml");
2 getBean(“配置文件的id/name”)
4、实现依赖注入
<bean class="com.no1.biz.GoodsBIZ" name="GoodsBIZ">
<propertyname="goodsDAO"ref="GoodsDAO"/>
</bean>三种实例化对象的方式
1、构造方法
<bean class="com.no1.dao.GoodsDAO" id="GoodsDAO"/>
2、工厂类的静态方法public class StaticFactory{
public static GoodDAO create(){
return new GoodDAO();
}}
<bean id="GoodDAO " class="com.no1.factory.StaticFactory"factory-method="create"/>
3、工厂类的实例方法public class MethodFactory{
public GoodDAO create(){
return new GoodDAO();
}}
<beanid="methodFactory"class="com.no1.factory.MethodFactory"/>
<beanid="GoodsDAO"factory-bean="methodFactory"factory-method="create"/>
二种依赖注入的方式
1、属性注入:调用set方法
public class GoodService{
private GoodDAO goodDAO;
//set/get方法省略
public void save(){
goodDAO.save();
}}
<bean class="com.no1.biz.GoodService"name="GoodService">
<propertyname="goodDAO"ref="GoodDAO"/>
</bean>
2、构造注入:通过构造方法的方式<bean class="com.no1.biz.GoodsBIZ" name="GoodsBIZ">
<constructor-argindex="0"ref="GoodsDAO"/>
</bean>
index="0"表示构造方法的第一个参数
<constructor-argname="参数名称"
- Spring学习—控制反转(IOC)Spring依赖注入(DI)和控制反转(IOC)
- Spring IOC(控制反转)和DI(依赖注入)
- Spring-IOC(控制反转)+DI(依赖注入)
- Spring 控制反转(IOC)与依赖注入(DI)
- Spring控制反转与依赖注入(IOC && DI)
- IOC(控制反转) DI(依赖注入)
- Spring——DI(依赖注入)/Ioc(控制反转)
- Spring学习之——控制反转(IoC)与依赖注入(DI)
- Spring 控制反转IOC,依赖注入DI
- spring四种依赖注入方式 ( 依赖注入DI+ 控制反转IOC的原理)
- IoC(控制反转)和DI(依赖注入)
- IoC(控制反转)与DI(依赖注入)
- 解构控制反转(IoC)和依赖注入(DI)
- 控制反转(IoC)和依赖注入(DI)
- 控制反转(IOC)与依赖注入(DI)
- 反转控制(IOC)与依赖注入(DI)
- 控制反转(IOC)与依赖注入(DI)
- 控制反转(IoC)与依赖注入(DI)
- Spring-Hibernate分库事务实现
- 欢迎使用CSDN-markdown编辑器
- arm-linux-gcc工具链下载
- HTTP协议学习笔记一
- Android shell获取和模拟点击事件
- Spring——DI(依赖注入)/Ioc(控制反转)
- 3.3V转5V电路
- java 输入一个正整数,然后显示从0-该数字为止表示所有的数字
- hdu 1281 棋盘游戏
- 马虎的算式
- HBase Rowkey热点问题
- span 换行/不换行-解决
- Java-对象的序列化和反序列化
- JavaScript -arguments、caller 和 callee