一、IoC定义

  IoC,即控制反转。开发者在使用类的实例之前,需要先创建对象的实例。但是IoC将创建实例的任务交给IoC容器,这样开发应用代码时只需要直接使用类的实例,这就是IoC。在讨论控制反转这个概念的过程中,Martin Fowler提出了一个更为准确的概念,叫做依赖注入(Dependency Injection)。

二、依赖注入的类型

(1)设值注入

IoC容器使用成员变量的setter方法来注入被依赖对象

<bean class="com.mk.User"><property name="username">zhangsan</property>
</bean>

(2)构造注入

IoC容器使用构造器来注入被依赖对象

<bean class="com.mk.User"><constructor-arg >zhangsan</property>
</bean>

(3)接口注入

Spring没有实现接口注入,接口注入和属性注入的功能差不多,但接口使得项目的类数量变多,现如今不推崇使用接口注入

<bean id="addressBean" class="com.mk.Address"><property name="addr" value="China"/>
</bean>
<bean class="com.mk.User"><property name="address" ref="addressBean"/>
</bean>

User类

class User{private String username;private IAddress address;public User(){}public User(String username){this.username=username;}public void setUsername(String username){this.username=username;}public void setAddress(IAddress address){this.address=address;}
}

IAddress类

class IAddress{public void setAddr(String addr);public String getAddr();
}

Address类

class Address extends IAddress{private String addr;public void setAddr(String addr){this.addr=addr;}public String getAddr(){return addr;}
}

Spring入门(三)之IoC相关推荐

  1. Java程序员从笨鸟到菜鸟之(七十)细谈Spring(三)IOC和spring基本配置详解

    对于IoC 的一些知识点,相信大家都知道他在spring框架中所占有的地位,应该可以算的上是核心之一吧,所以IOC是否理解清楚,决定了大家对Spring整个框架的理解 Ioc的理解 spring 的两 ...

  2. Spring——入门介绍(以版本5.2为例)

    目录 1.Spring框架概述 2.Spring入门案例 3.IoC介绍 (1)IoC概述 (2)IoC底层原理 (3)IoC接口 4.IoC操作--Bean 管理 (1)Bean 管理概述 (2)B ...

  3. Spring入门(四):使用Maven管理Spring项目

    让我们先回顾下本系列的前3篇博客: Spring入门(一):创建Spring项目 Spring入门(二):自动化装配bean Spring入门(三):通过JavaConfig装配bean 1.为什么要 ...

  4. Spring(二)IOC容器的初始化流程

    文章目录 一.Spring 核心容器类 1.1 BeanFactory 1.2 ApplicationContext 1.3 BeanDefinition 二.IOC容器的初始化 2.1 基于Xml的 ...

  5. Spring入门 IOC/DI基础案例

    目录 前言 一.创建set方法让外部进行方法提供 二.配置文件 三.实际运行 前言 书接上回:Spring入门-ioc基础案例代码_年关的博客-CSDN博客 我们通过Spring方式进行了对象创建,但 ...

  6. Spring入门详细教程(三)

    前言 本篇紧接着spring入门详细教程(二),建议阅读本篇前,先阅读第一篇和第二篇.链接如下: Spring入门详细教程(一) https://www.cnblogs.com/jichi/p/101 ...

  7. Spring入门介绍:

    Spring入门介绍 Spring诞生: 创建Spring的目的就是用来替代更加重量级的的企业级Java技术 简化Java的开发 基于POJO轻量级和最小侵入式开发 通过依赖注入和面向接口实现松耦合 ...

  8. Spring入门5.事务管理机制

    Spring入门5.事务管理机制 20131126 代码下载 : 链接: http://pan.baidu.com/s/1kYc6c 密码: 233t 回顾之前的知识,Spring 最为核心的两个部分 ...

  9. spring入门总结

    spring入门总结 一.spring介绍 1.spring是什么 2.理念: 3.Spring优点: 4.缺点 5.主要内容: 二.IOC&DI 1.使用IOC创建对象的三种方法 a.无参构 ...

  10. java-12:spring MVC - 控制反转IOC,依赖注入DI

    学习spring框架之前,先理解几个概念: 1.第一部分:依赖倒置原则 2.第二部分:控制反转,控制反转容器(实例) 3.第三部分:控制反转,控制反转容器(全面理解,面试题) 综合性理解:控制反转(I ...

最新文章

  1. 周末不用过来了,好好休息吧_如何好好休息
  2. windows上的svn服务器迁移到linux
  3. 从HarmonyOS应用到底是不是Android套壳?
  4. (翻译)Real-UID,Effective-UID,Saved-UID区别
  5. Spark SQL之jdbc方式访问
  6. php将代码上传至服务器步骤
  7. python的变量名必须以什么开头_python以下划线开头的变量名含义
  8. 比特飞使用的是什么主题
  9. 95-260-055-源码-检查点-Savepoint 和 Checkpoint的异同
  10. #if、#ifdef、#if defined之间的区别
  11. lopatkin俄大神Windows精简版系统安装注意事项及恢复OneDrive
  12. Java Se 、JavaEE、JavaME区别
  13. 行测题相关,在线测评(图形找规律。逻辑思维)
  14. input隐藏边框、设置透明背景色
  15. 理解蓝绿发布、灰度发布和滚动发布
  16. 学习笔记---高等数学前置知识---约分、通分
  17. 计算机用户删除文件找回,电脑删除的文件怎么找回?失易得数据恢复帮助找回...
  18. dubbo注册服务5秒一个解决办法
  19. jQuery——小案例:点击图片放大缩小
  20. sass安装步骤、概述、基本语法等

热门文章

  1. linux strcpy函数实现,strcpy(char *dest , char *src)的漏洞
  2. P3978 [TJOI2015]概率论(生成函数)
  3. Ozon Tech Challenge 2020 (Div.1 + Div.2, Rated) D. Kuroni and the Celebration 交互 + 思维
  4. Codeforces Round #624 (Div. 3) D. Three Integers 数论
  5. P2831 [NOIP2016 提高组] 愤怒的小鸟 状压dp
  6. 常系数齐次线性递推学习笔记
  7. P2305 [NOI2014]购票
  8. Moving On Gym - 102222F
  9. 牛客网【每日一题】5月8日题目精讲 codeJan与旅行
  10. P6620 [省选联考 2020 A 卷] 组合数问题(斯特林数、下降幂)