Java笔记--IoC控制反转--2021-08-11

11 篇文章 0 订阅


刚开始学习时,对何为 Ioc 是有点不理解的。在spring学习完后,理解更加深入了,现在总结。注:以下文章为本人自己的理解并加以网上的资料写出,学浅,如有错误请指出,谢谢

一、spring的第一个核心功能 ioc

控制反转(IoC,Inversion of Control)是一个概念,是一种思想。指将传统上由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理。控制反转就是对对象控制权的转移,从程序代码本身反转到了外部容器。通过容器实现对象的创建,属性赋值,依赖的管理。就是以前我们在代码中,使用new 构造方法创建对象,现在不用了, 由容器代替开发人员管理对象。创建对象,给属性赋值

在看视频学习时,老师给了一个很好的理解思路:拆分控制反转四个字

1. 控制:创建对象,对象的属性赋值,对象之间的关系管理。

理解反转前先解释正转
2. 正转:由开发人员在代码中,使用new 构造方法创建对象, 开发人员主动管理对象。
例子:

public static void main(String args[]){
  Student student = new Student(); // 在代码中, 创建对象。--正转。
}

3.反转:把原来的开发人员管理,创建对象的权限转移给代码之外的容器实现。 由容器代替开发人员管理对象。创建对象,给属性赋值。
4.容器:容器可以理解为一个map集合,容器val用于存储对象,我们要用到这个对象时可以使用key取出,这个容器会自动创建对象并存入,同时也实现了自动注入

二、ioC 的体现

Servlet

  1. 创建类继承HttpServelt
  2. 在web.xml 注册servlet , 使用
<servlet-name> myservlet </servlet-name>
<servelt-class>com.bjpwernode.controller.MyServlet1</servlet-class>
  1. 我们会使用到MyServlet 这个类,但是我们没有创建 Servlet对象,没有 MyServlet myservlet = new MyServlet()
  2. 所以可以确定,Servlet 是Tomcat服务器它创建的。 Tomcat也称为容器。
  3. Tomcat作为容器:里面存放的有Servlet对象, Listener , Filter对象

三、IoC的技术实现:依赖注入 DI

前面有讲 控制反转 是一个概念,是一种思想。那么其实现方式多种多样。当前比较流行的实现方式是依赖注入。应用广泛。

依赖:classA 类中含有 classB 的实例,在 classA 中调用 classB 的方法完成功能,即 classA对 classB有依赖。

控制反转IoC 的实现:

依赖注入:DI(Dependency Injection),是指程序运行过程中,若需要调用另一个对象协助时,无须在代码中创建被调用者,而是依赖于外部容器,由外部容器创建后传递给程序。

上面的解释有点抽象了,说白话就是:
依赖注入, 只需要在程序中提供要使用的对象名称就可以, 至于对象如何在容器中创建,赋值,查找都由容器内部实现

springy框架使用依赖注入(DI)实现 IoC,spring底层创建对象,使用的是反射机制。spring是一个容器,管理对象,给属性赋值, 底层是反射创建对象。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张德帅-001

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值