当前位置:首页 > 科技  > 软件

面试官:说说Spring中IoC实现原理?

来源: 责编: 时间:2024-03-28 17:51:26 239观看
导读IoC(Inversion of Control)即控制(权)反转,它是一种编程思想,它的核心理念是将对象的创建和管理权力从对象本身转移到外部的容器或框架。IoC 的主要目的是降低代码之间的耦合度,提高代码的重用性、可测试性和灵活性。在 IoC

bKP28资讯网——每日最新资讯28at.com

IoC(Inversion of Control)即控制(权)反转,它是一种编程思想,它的核心理念是将对象的创建和管理权力从对象本身转移到外部的容器或框架。bKP28资讯网——每日最新资讯28at.com

IoC 的主要目的是降低代码之间的耦合度,提高代码的重用性、可测试性和灵活性。在 IoC 模式下,对象不需要自己创建或者查找它们所依赖的对象,这些工作由外部的容器(Spring)完成。bKP28资讯网——每日最新资讯28at.com

IoC 实现方式有很多种,例如依赖注入(DI)或依赖查找等,但 DI 是实现 IoC 的一种常见实现方法,它通过将依赖项注入到对象中来实现控制反转。bKP28资讯网——每日最新资讯28at.com

IoC 底层原理

Spring 中的 IoC 底层是通过工厂模式+反射实现的,具体来说,它的实现步骤是这样的:bKP28资讯网——每日最新资讯28at.com

首先,我们通过以下代码初始化 IoC 容器:bKP28资讯网——每日最新资讯28at.com

ApplicationContext context =     new ClassPathXmlApplicationContext("applicationContext.xml");

之后会创建一个工厂类,工厂类中有一个创建 Bean 的方法 createBean。bKP28资讯网——每日最新资讯28at.com

createBean 中首先会通过读取配置文件,获取到全类名,如下所示:bKP28资讯网——每日最新资讯28at.com

<beans>    <bean id="myBean" class="com.example.MyBean" /></beans>

之后通过反射,将获取到的全类名进行加载,创建对象存放到 IoC 容器中。bKP28资讯网——每日最新资讯28at.com

当有代码使用了 DI 时,从容器中找到(根据类名或类型查找)此实例进行使用,如下代码所示:bKP28资讯网——每日最新资讯28at.com

@Componentpublic class MyBean {    @Autowired    private MyBean myBean;    public void doSomething() {        System.out.println("Bean: " + myBean);    }}

课后思考

IoC 中的工厂模式对应了 Spring 源码中的哪个步骤?反射的核心实现代码有哪些?bKP28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-80198-0.html面试官:说说Spring中IoC实现原理?

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 面试官问:Java中的new关键字做了什么事情?

下一篇: 使用 HexFormat 来格式化和解析十六进制字符串

标签:
  • 热门焦点
  • 小米降噪蓝牙耳机Necklace分享:听一首歌 读懂一个故事

    在今天下午的小米Civi 2新品发布会上,小米还带来了一款新的降噪蓝牙耳机Necklace,我们也在发布结束的第一时间给大家带来这款耳机的简单分享。现在大家能见到最多的蓝牙耳机
  • 小米平板5 Pro 12.4简评:多专多能 兼顾影音娱乐的大屏利器

    疫情带来了网课,网课盘活了安卓平板,安卓平板市场虽然中途停滞了几年,但好的一点就是停滞的这几年行业又有了新的发展方向,例如超窄边框、高刷新率、多摄镜头组合等,这就让安卓
  • 7月安卓手机性价比榜:努比亚+红魔两款新机入榜

    7月登场的新机有努比亚Z50S Pro和红魔8S Pro,除了三星之外目前唯二的两款搭载超频版骁龙8Gen2处理器的产品,而且努比亚和红魔也一贯有着不错的性价比,所以在本次的性价比榜单
  • JavaScript 混淆及反混淆代码工具

    介绍在我们开始学习反混淆之前,我们首先要了解一下代码混淆。如果不了解代码是如何混淆的,我们可能无法成功对代码进行反混淆,尤其是使用自定义混淆器对其进行混淆时。什么是混
  • 一个注解实现接口幂等,这样才优雅!

    场景码猿慢病云管理系统中其实高并发的场景不是很多,没有必要每个接口都去考虑并发高的场景,比如添加住院患者的这个接口,具体的业务代码就不贴了,业务伪代码如下:图片上述代码有
  • 腾讯盖楼,字节拆墙

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之&ldquo;想重温暴刷深渊、30+技能搭配暴搓到爽的游戏体验吗?一起上晶核,即刻暴打!&rdquo;曾凭借直播腾讯旗下代理格斗游戏《DNF》一
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • ESG的面子与里子

    来源 | 光子星球撰文 | 吴坤谚编辑 | 吴先之三伏大幕拉起,各地高温预警不绝,但处于厄尔尼诺大&ldquo;烤&rdquo;之下的除了众生,还有各大企业发布的ESG报告。ESG是&ldquo;环境保
  • 华为开发者大会2023日程公开:开设鸿蒙HarmonyOS 4体验区

    IT之家 7 月 31 日消息,华为今日公布了 HDC.Together 开发者大会 2023 的详细日程。整场大会将于 8 月 4 日-6 日之间举行,届时将发布最新一代鸿蒙 H
Top