IOC随笔

对IOC的一点学习笔记


IOC (Inversion of Control):控制反转

DI (Dependency Injection):依赖注入


1、在没有使用IOC的情况下是如何进行的

在UserController中需要用到UserService的相关逻辑来实现对应的增删改查功能,那么需要在UserController中直接 new UserService();
对于一个UserService来说还好,假如我有若干个Service需要使用,每个地方都使用new来创造一个对象供自己使用?如果我每个Service都有若干种实现,那么分别进行new?这样太累了。

2、IOC Service Provider登场

我们需要使用一个对象,但是又不想自己动手去创造,那有没有别人来帮我们做这些基础工作?然后我们就集中精力关注我们要关注的业务点?
有,来帮我们做这件事情的就是IOC Service Provider。
我们需要什么的时候,完全交给它来帮我们创建,它知道我们需要什么。
我们缺乏什么的时候,也可以主动找它要,它拥有我们想要的。
我们将自己创建对象的控制权交给它,我们把自己的依赖来交给它管理,这就是----控制反转\依赖注入。

3、IOC Service Provider是什么

IOC Service Provider是一个抽象概念,它指任何一种将IOC场景中的业务对象绑定到一起的实现方式,可以是一段代码,也可以是一组相关的类,或者是比较通用的IOC框架或者IOC容器实现。

而我们使用的Spring,它的IOC容器就是:

  • BeanFactory:最基础的IOC服务支持,采用延迟初始化策略。
  • ApplicationContext:在BeanFactory的基础上构建,相对比较高级的容器实现,还有比如事件发布、国际化支持等。可以使用及时加载,容器在启动之后自动完成初始化绑定。

4、IOC容器到底在背后做什么

毫无疑问,它最基本的两个职责就是:

  • 业务对象的构建管理:负责创建系统中的一切需要的对象
  • 业务对象间的依赖绑定:将这些创建好的对象组织在一起让它们一起好好工作

5、我们怎么使用IOC

使用过 @Controller @Service @Resource @Autowired 这些注解吧?

posted @ 2021-05-19 19:24  小白先生哦  阅读(112)  评论(0编辑  收藏  举报