【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!

相关推荐
巨大八爪鱼1 分钟前
XP系统下用mod_jk 1.2.40整合apache2.2.16和tomcat 6.0.29,让apache可以同时访问php和jsp页面
java·tomcat·apache·mod_jk
码上一元2 小时前
SpringBoot自动装配原理解析
java·spring boot·后端
计算机-秋大田2 小时前
基于微信小程序的养老院管理系统的设计与实现,LW+源码+讲解
java·spring boot·微信小程序·小程序·vue
魔道不误砍柴功4 小时前
简单叙述 Spring Boot 启动过程
java·数据库·spring boot
失落的香蕉4 小时前
C语言串讲-2之指针和结构体
java·c语言·开发语言
枫叶_v4 小时前
【SpringBoot】22 Txt、Csv文件的读取和写入
java·spring boot·后端
wclass-zhengge4 小时前
SpringCloud篇(配置中心 - Nacos)
java·spring·spring cloud
路在脚下@4 小时前
Springboot 的Servlet Web 应用、响应式 Web 应用(Reactive)以及非 Web 应用(None)的特点和适用场景
java·spring boot·servlet
黑马师兄4 小时前
SpringBoot
java·spring
数据小小爬虫4 小时前
如何用Java爬虫“偷窥”淘宝商品类目API的返回值
java·爬虫·php