十分钟理解springIOC的好处

本文介绍了Spring框架中IOC(Inverse of Control)自动注入的概念及其优势。通过对比使用与未使用IOC的方式创建对象,展示了IOC如何简化代码并提高模块间的解耦。在Spring中,依赖查找和依赖注入是IOC的两个核心特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Spring IOC自动注入

它的好处,是是一个超级大工厂,我们不用再管理对象,实际上,IOC分为两个部分:
在这里插入图片描述`
其中

  • Dependency Lookup指的是依赖查找:他是当前软件实体主动去某个服务注册地查找其依赖的那些服务。
  • Dependency Injection指的是依赖注入:他是当前软件实体被动接受其他组件被IOc容器注入。

他的好处,举个例子,我们平常写的代码有三个部分:

  • controller
  • service
  • dao
    他们之间的依赖关系是
    在这里插入图片描述

我们看一下,如果没有IOC,我们该如何实现ControllerA

// 先构造DaoA,DaoB,DaoC,DaoD
DaoA da = new DaoA();
DaoB db = new DaoB();
DaoC dc = new DaoC();
Daod dd = new DaoD();

// 构造Service A,Service B
ServiceA sa = new ServiceA(da, db);
ServiceB sb = new ServiceB(dc, dd);

// 构造ControllerA
ControllerA ca = new ControllerA(sa, sb);

看到了吗,构建一个Controller类,需要提前new一系列相关的对象,这样实在太麻烦了,在spring boot中是怎么做的?

@Controller
class ControllerA
{
    @Autowired
    ServiceA sa;
    @Autowired
    ServiceA sb;
}
@Service
class ServiceA
{
    @Autowired
    DaoA da;
    @Autowired
    DaoB db;
}
@Service
class ServiceA
{
    @Autowired
    DaoC dc;
    @Autowired
    DaoD dd;
}

看起来似乎没有简便多少,但实际上,对比一下,你会发现。每个类在构造的时候,只需将和它相关的类注入即可,并不需要考虑相关类的如何创建。比如,ControllerA只需要考虑ServiceA,ServiceA就好,至于这两个类怎么构建的,不用管,SPringIOC会替你管理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值