Spring的理解

Spring的理解

Spring之IOC的理解

IOC控制反转的好处是由程序员写死的代码,变为由程序员(或用户)管理的代码
例子一
实体类

package com.parsley.dao;

public class Paper {
    private String context;

    public String getContext() {
        return context;
    }

    public void setContext(String context) {
        this.context = context;
    }
}

service接口

package com.parsley.service;

import com.parsley.dao.Paper;

public interface Printer {
    public void myPrint(Paper paper);
}

service实现类

package com.parsley.service;

import com.parsley.dao.Paper;

public class TextPrinter implements Printer{

    public void myPrint(Paper paper) {
        paper.setContext("打印了文本信息");
    }
}
package com.parsley.service;

import com.parsley.dao.Paper;

public class ImagePrinter implements Printer{
    public void myPrint(Paper paper) {
        paper.setContext("打印了图片信息");
    }
}

Printer接口是打印机接口
TextPrinter是有文本打印功能的打印机
ImagePrinter是有图片打印功能的打印机
测试

    @Test
    public void test01(){
        Paper paper=new Paper();
        Printer printer = new TextPrinter();
        printer.myPrint(paper);
        System.out.println(paper.getContext());
    }


如果现在想换一种方式打印,那么是不是必须
Printer printer = new ImagePrinter();
那么这个就相当于换一个打印机来打印东西
就相当于你想打印不同的东西要搬来搬去两台打印机
而SpringIOC的方式则是由Spring管理这些东西,你想要什么就只要切换打印功能,Spring帮你搬好了打印机,你只要去Spring中设置就行了。
例子二
有一个1拖100的数据线
有100个手机(需要充电功能)(相当于controller层)
有充电头(service接口)
不同瓦数的充电头(service接口实现类)
假如你现在有一个5w的充电头(一个实现类)
这100个手机使用1拖100数据线连接5w充电头进行充电(相当于controller使用5w的这个实现类)
现在有一个需求想要使用120w快充(更换实现类)
我们看看实现这个需求两种方式有什么差别
1.使用new方式
相当于你需要去改变这100个new出来的东西
就是把这100个接口拔掉,换掉带有5w头的1拖100数据线,换一个带有120w头的1拖100数据线
2.使用Spring方法
相当于你拔掉1个接口,把这个接口从5w的头上拔下,换到120w的头上


理解上来说就是Spring管理了这些类所以你要什么,就直接换就行不需要像使用new一样一个一个换,new相当于写死了就是使用5w的头,而Spring并没有这样,而是用户自己去设置是用哪个头。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值