【Spring篇】简述IoC入门案例,DI入门案例

🎊专栏【Spring】

🍔喜欢的诗句:天行健,君子以自强不息。

🎆音乐分享【如愿】

🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

🎄Spring Framework系统架构

🎆Spring核心概念

Spring框架中核心的要属IoC(控制反转)和DI(依赖注入)了。这两大特性是我们入门Spring时首先需要理解掌握的内容。那么IoC和DI的思想是什么?应该如何编写代码实现基本的注入呢?今天这篇文章就带你快速实战Spring最基础的案例,一步步揭开IoC和DI的神秘面纱。

通过示例代码,结合简单说明,你可以快速理解IoC/DI核心思想,并学会如何利用Spring容器实现对象的注入。这将打下你学习Spring框架的基础,让你通过简单实操对这些概念有更直观感受。跟随本文,开始Spring之旅吧!

🌺IoC控制反转

使用对象时,由主动new产生对象转换为由外部提供对象,在此过程中对象创建控制权由程序转移到外部,这种思想称为控制反转

spring技术对IoC思想进行了实现

  • spring提供了一个容器,称为IoC容器,用来充当IoC思想中的"外部"
  • IoC容器负责对象的创建,初始化等一系列工作,被创建或被管理的对象在IoC容器里面称为Bean

🌺DI依赖注入

在容器里面建立bean与bean之间的依赖关系,称为依赖注入

🛸目标

充分解耦

  • 使用IoC容器管理bean(IoC)
  • 在IoC容器内将有依赖关系的bean进行关系绑定(DI)

🛸最终效果

使用对象不仅可以直接从IoC容器里面获取,并且获取到的bean,已经绑定了所有的依赖关系

🍔IoC入门案例

🎈步骤

🏳️‍🌈导入Spring坐标

🏳️‍🌈定义Spring管理的类(接口)

🏳️‍🌈创建Spring配置文件,配置对应的类作为Spring管理的bean

🏳️‍🌈初始化IoC容器(Spring核心容器 / Spring容器),通过容器获取bean

🍔DI入门案例

🎈步骤

🏳️‍🌈删除使用new的形式创建对象的代码

🏳️‍🌈提供依赖对象对应的setter方法

🏳️‍🌈配置service与dao之间的关系


🎈代码实现

首先创建一个maven项目

在pom.xml文件中添加下面的代码

xml 复制代码
 <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.10.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

然后点击右边框的maven,刷新一下

看到有依赖,即可

然后右击resource,创建xml文件

剩下的代码我放到网盘里面了,里面是完整代码,需要的请自取
我用夸克网盘分享了「spring_01_quickstart」,点击链接即可保存。打开「夸克APP」,无需下载在线播放视频,畅享原画5倍速,支持电视投屏。 链接:https://pan.quark.cn/s/24e5655c7d18


通过这两个简单的示例,我们已经领略了Spring IoC和DI核心思想的魅力------解耦和注入。当然实际应用中,Spring的功能远不止这些。但如果能把这些基础概念牢记于心,那么您已经准备好开启Spring框架的学习和应用之旅了。

学到这里,你是否也开始有些Chapter Spring的欲望了呢?那么就在评论区留下你的想法吧,我们一起学习这个 Java世界的扛把子框架,see you next!

相关推荐
掘金一周31 分钟前
我开源了一款 Canvas “瑞士军刀”,十几种“特效与工具”开箱即用 | 掘金一周 8.14
前端·人工智能·后端
缉毒英雄祁同伟1 小时前
企业级WEB应用服务器TOMCAT
java·前端·tomcat
村姑飞来了1 小时前
Spring 扩展:动态使某个 @Import 方式导入的 @Configuration 类失效
后端
开心就好20251 小时前
前端性能优化移动端网页滚动卡顿与掉帧问题实战
后端
语落心生1 小时前
如何利用Paimon做流量定时检查? --- 试试标签表
后端
paopaokaka_luck1 小时前
校园快递小程序(腾讯地图API、二维码识别、Echarts图形化分析)
vue.js·spring boot·后端·小程序·uni-app
用户298698530141 小时前
C# 使用Spire.XLS快速生成多表格Excel文件
后端
青云交1 小时前
Java 大视界 -- 基于 Java 的大数据可视化在能源互联网全景展示与能源调度决策支持中的应用
java·大数据可视化·智能决策·能源互联网·三维渲染·能源调度·nsga-ii
盖世英雄酱581361 小时前
国企“高级”程序员写的那些问题代码(六期)
java·后端