十分钟理解springIOC的好处

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会替你管理。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章