栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA(Spring)学习笔记--->控制反转、依赖注入

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA(Spring)学习笔记--->控制反转、依赖注入

1:Spring资源目录(resource)的XML文件头:





2:控制反转IoC(Inversion of Control)

2.1:什么是控制反转?

        控制反转就是将程序控制权由对象交给了交给容器,控制反转也是一个解耦合的过程(笔者通过一个在网上看到例子来说明)

                           

解耦合:

传统的程序就像第一幅图一样,齿轮是彼此依赖的,如果一个齿轮出故障不转动了,整个程序就崩溃了,这就代表这耦合度过高;

控制反转就相当于第二幅图的第三方齿轮,其中一个齿轮就算出故障了,整个程序也不会崩溃,这就是所谓的解耦合;

 控制反转的由来?

第二幅图就中的第三方就是IOC容器,控制权就在它手里,如果A对象需要一个D对象,但是因为第三方IOC容器的介入失去了与D对象的联系,那么A对象就会告诉IOC容器(第三方)我需要一个D对象,那么IOC容器就会将D对象创建并注入到A对象需要的地方,这时候就体现出了控制权在IOC手中。而第一幅图中,A对象需要一个D对象,他就会自己创建并添加 到自己需要的地方,控制权在自己手上。

综上所述:控制权由对象自己手上交给IOC容器来获得控制权,这就叫控制反转

2.2什么是依赖注入?

在博主看来依赖注入:就是给IOC容器创建的类赋予(注入)属性,接下来博主会给大家看一段代码来加深大家的理解

创建一个Person类

package com.kaifamiao.ioc.what;

import java.util.Calendar;
import java.util.Date;


public class Person {

    //Person类的属性
    //get和set
    //无参构造和有参构造
    //toString
}

添加resouce资源目录下的XML文件





    
        
    
    
        
        
        
        
    

在XML文件中bean就是一个对象,这就是控制反转,开始第一段代码的Person是个类,现在IOC容器将会给我们创建对象(李唐天子李星云),而传统的我们要通过类去创建一个对象就需要去new一个对象(Person p=new Person()),然后再设置对象的属性,而依赖注入就是,也就相当于p.setName(李唐天子李星云),一个意思,但是两者的不同在于,传统的是对象自己去赋值,而依赖注入是IOC容器创建好了对象,在给对象的属性注入值,所谓依赖就是对象所需要的值是通过依赖IOC容器注入的。

注意:控制反转是一种思想,依赖注入是一种模式,两者不能混为一谈。

以上是笔者自己的见解,有问题希望大家留言纠正;

星光灿烂,愿我们一同前行!


 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/781202.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号