spring 学习 二 IOC/DI
中文名称:控制反转
英文名称:( Inversion of Control )
1 控制反转作用:
一般在编写java程序时,需要程序员自己创建对象的实例,例如 A a=new A();语句,就是程序员自己通过new 语句创建要使用的类实例,控制反转就是把创建对象实例的过程交给了spring,程序员不需要再通过new 语句去创建类实例,spring创建好类的实例后,再把创建的类实例注册到spring容器。
2 IOC最重要的一个作用就是解耦。
注意:创建类实例可以交给spring,工厂也可以创建类实例,二者的区别?
3 DI
DI(Dependency Injection) 依赖注入:可以把依赖注入拆开,拆成依赖和注入。
依赖:其实就是类关系中的依赖关系,我们最常见的类关系是继承关系,除了继承还有依赖关系
//下面的的类关系是继承关系,教师类继承了员工类
public class Employee{
private String name;
private Integer age;
private String workNo;
}
public class Teacher extends Employee{
private String className;
private String classNo;
}
//下面的类关系就是依赖关系,汽车类依赖轮子类
public class Car{
private Wheel wheel;
}
public class Wheel{
private Integer size;
}
注入:既然依赖关系解释清楚,下面就解释注入,注入就是把被依赖的对象放到依赖对象中去,
上面的例子中,Car是依赖类,Wheel是被依赖类,注入就是把Wheel的对象放进Car对象中去。
在创建Car的对象时,即Car car=new Car();时,此时我们只是给Car分配了内存空间,car对象中的wheel只是一个引用且值为null,并没有引用任何对象。此时需要创建一个Wheel的对象,让car对象中的wheel属性引用到Wheel对象。这个过程就是注入
依赖注入的方式:1 构造注入,2 setter方法注入
spring中对象的创建有三种方式:1 构造器创建,2 实例工厂创建 ,3 静态工厂创建
spring 学习 二 IOC/DI的更多相关文章
- Spring学习二----------IOC及Bean容器
© 版权声明:本文为博主原创文章,转载请注明出处 接口 用于沟通的中介物的抽象化 实体把自己提供给外界的一种抽象化说明,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的 ...
- Spring学习之Ioc控制反转(1)
开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...
- Spring学习之Ioc控制反转(2)
开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...
- Java开发学习(二)----IOC、DI入门案例
一.IOC入门案例 1.1 思路分析 (1)Spring是使用容器来管理bean对象的,那么管什么? 主要管理项目中所使用到的类对象,比如(Service和Dao) (2)如何将被管理的对象告知IOC ...
- spring学习(二) ———— AOP之AspectJ框架的使用
前面讲解了spring的特性之一,IOC(控制反转),因为有了IOC,所以我们都不需要自己new对象了,想要什么,spring就给什么.而今天要学习spring的第二个重点,AOP.一篇讲解不完,所以 ...
- 十七、Spring框架(IOC/DI)
一.Spring框架 Spring是一个基于IOC和AOP的结构J2EE系统的框架. 1.IOC反转控制是Spring的基础(Inversion Of Control).也就是说创建对象由以前的程序员 ...
- Spring学习笔记IOC与AOP实例
Spring框架核心由两部分组成: 第一部分是反向控制(IOC),也叫依赖注入(DI); 控制反转(依赖注入)的主要内容是指:只描述程序中对象的被创建方式但不显示的创建对象.在以XML语言描述的配置文 ...
- spring中的IOC/DI的知识点
IOC(Inverse of control):控制反转;其实就是一个装对象的容器,以前我们在controller中调用service中的方法,都要先new 一个service对象,这样不符合模式设计 ...
- Spring.Net---3、IoC/DI深入理解
------------------------------------------------------------------------ 理解IoC/DI 1.控制反转 --> 谁控制谁 ...
随机推荐
- js增减日期
参考 https://www.cnblogs.com/gmq-sh/p/5194706.html date.setDate(date.getDate() + 3);
- redismyadmin安装(支持redis4 集群模式)
yum install php-pecl-redis https://github.com/daivem/RedisMyAdmin下载最新的安装包,解压yum install nginx php ph ...
- PAT1021(dfs 连通分量)
A graph which is connected and acyclic can be considered a tree. The height of the tree depends on t ...
- MySQL之多表查询练习 与基本查询基础
MySQL 增删查改 一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into]<表名> [列名] values <列值> 例:insert i ...
- FZU-1752.(A^B mod C)(快速幂与快速乘优化)
我把自己演哭了... 心酸.jpg 写了很多个版本的,包括数学公式暴力,快速幂TLE等等,最后想到了优化快速幂里的乘法,因为会爆longlong,但是和别人优化的效率简直是千差万别...? 本题大意: ...
- PHP20-challenge12
看下eval+var_dump的妙用. eval会执行括号中的内容:var_dump中内容是字符串时输出的模式是 string(x) "xxxx".如果他俩结合,是可以很好 ...
- 100-days: eight
Title: U.S.(美国司法部) accuses rich parents of college entry fraud accuse v.指控,指责,谴责 accuse someone of ...
- 【jquery】checkbox
jquery操作checkbox 模拟选中: $('#aaa').prop('checked', true); 模拟取消选中: $('#aaa').prop('checked', false); 其它 ...
- RESTful接口规范
一. 什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角 ...
- Linux下Python2升级Python3
Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...