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

🎊专栏【Spring】
🍔喜欢的诗句:天行健,君子以自强不息。
🎆音乐分享【如愿】
🎄欢迎并且感谢大家指出小吉的问题🥰

文章目录

  • 🎄Spring Framework系统架构
  • 🎆Spring核心概念
    • 🌺IoC控制反转
    • 🌺DI依赖注入
    • 🛸目标
    • 🛸最终效果
  • 🍔IoC入门案例
    • 🎈步骤
      • 🏳️‍🌈导入Spring坐标
      • 🏳️‍🌈定义Spring管理的类(接口)
      • 🏳️‍🌈创建Spring配置文件,配置对应的类作为Spring管理的bean
      • 🏳️‍🌈初始化IoC容器(Spring核心容器 / Spring容器),通过容器获取bean
  • 🍔DI入门案例
    • 🎈步骤
      • 🏳️‍🌈删除使用new的形式创建对象的代码
      • 🏳️‍🌈提供依赖对象对应的setter方法
      • 🏳️‍🌈配置service与dao之间的关系
    • 🎈代码实现

在这里插入图片描述

🎄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文件中添加下面的代码

 <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!
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/148665.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这可能是最全的反爬虫及应对方案,再也不怕爬不到数据了

一、什么是反爬虫 网络爬虫&#xff0c;是一个自动提取网页的程序&#xff0c;它为搜索引擎从万维网上下载网页&#xff0c;是搜索引擎的重要组成。但是当网络爬虫被滥用后&#xff0c;互联网上就出现太多同质的东西&#xff0c;原创得不到保护。于是&#xff0c;很多网站开始…

asp.net core mvc Razor +dapper 增删改查,分页(保姆教程)

说明&#xff1a;本demo使用sqlserver数据库&#xff0c;dapper orm框架 完成一张学生信息表的增删改查&#xff0c;前端部分使用的是Razor视图&#xff0c; Linq分页 HtmlHelper。&#xff08;代码随便写的&#xff0c;具体可以自己优化&#xff09; //实现效果如下&#xff0…

服装服饰小程序商城的作用是什么

服装绝对算是市场重要的组成部分&#xff0c;零售批发都有大量从业者&#xff0c;随着线下流量匮乏、经营困难重重&#xff0c;很多厂家商家选择线上经营&#xff0c;主要方式是直播、入驻第三方平台等&#xff0c;同时私域节奏加快及线上平台限制等&#xff0c;不少商家也是通…

appscan的两种手动探索扫描方式

文章目录 一、使用火狐FoxyProxy浏览器代理探索二、使用appscan内置浏览器探索 一、使用火狐FoxyProxy浏览器代理探索 首先火狐浏览器需安装FoxyProxy 先在扩展和主题里搜FoxyProxy 选FoxyProxy Standard,然后添加到浏览器就行 添加后浏览器右上角会有这个插件 打开apps…

Linux系统下xxx is not in the sudoers file解决方法

文章目录 遇到问题解决方法参考 遇到问题 服务器上新建用户&#xff0c;名为lishizheng&#xff0c;现在想给该用户添加sudo权限。 $ sudo lsof -i tcp:7890 [sudo] password for lishizheng: lishizheng is not in the sudoers file. This incident will be reported.解决…

Go 语言内置类型全解析:从布尔到字符串的全维度探究

目录 一、布尔类型定义基础用法声明与初始化逻辑运算 进阶用法条件语句循环结构函数返回值 常见错误与陷阱 二、整数类型定义基础用法声明与初始化运算符位运算 进阶用法数据溢出类型转换类型推断 特殊整数类型runebyte 常见问题和陷阱 三、浮点数类型定义基础用法声明与初始化…

Junit的常用操作

注:本篇文章讲解的是junit5 目录 Juint是什么 Juint需要导入的依赖 Juint常用注解 Junit执行顺序 参数化 断言 测试套件 Juint是什么 Juint 是 Java 的一个单元测试框架. 也是回归测试框架. 使用 Junit 能让我们快速的完成单元测试。 注意&#xff1a;Junit 测试也是程序…

联合概率和条件概率的区别和联系

联合概率P(A∩B) 两个事件一起&#xff08;或依次&#xff09;发生的概率。 例如&#xff1a;掷硬币的概率是 ⁄₂ 50%&#xff0c;翻转 2 个公平硬币的概率是 ⁄₂ ⁄₂ ⁄₄ 25%&#xff08;这也可以理解为 50% 的 50%&#xff09; 对于 2 个硬币&#xff0c;样本空间将…

8章:scrapy框架

文章目录 scrapy框架如何学习框架&#xff1f;什么是scarpy&#xff1f;scrapy的使用步骤1.先转到想创建工程的目录下&#xff1a;cd ...2.创建一个工程3.创建之后要转到工程目录下4.在spiders子目录中创建一个爬虫文件5.执行工程setting文件中的参数 scrapy数据解析scrapy持久…

超市便利店批发零售小程序商城的作用是什么

超市便利店甚至是商场&#xff0c;所售卖的产品广而多&#xff0c;其线上线下商家数量也非常庞大&#xff0c;对传统超市便利店来说&#xff0c;往往会优先发力线下经营&#xff0c;然而随着互联网电商冲击&#xff0c;传统线下经营也面临&#xff1a;拓客引流难、产品销售难、…

子监督学习的知识点总结

监督学习 机器学习中最常见的方法是监督学习。在监督学习中&#xff0c;我们得到一组标记数据&#xff08;X&#xff0c;Y&#xff09;&#xff0c;即&#xff08;特征&#xff0c;标签&#xff09;&#xff0c;我们的任务是学习它们之间的关系。但是这种方法并不总是易于处理&…

Vue中如何进行拖拽与排序功能实现

在Vue中实现拖拽与排序功能 在Web应用程序中&#xff0c;实现拖拽和排序功能是非常常见的需求&#xff0c;特别是在管理界面、任务列表和图形用户界面等方面。Vue.js作为一个流行的JavaScript框架&#xff0c;提供了许多工具和库来简化拖拽和排序功能的实现。本文将介绍如何使…

算法:最近公共祖先(LCA)

有根树中&#xff0c;每一个点都有好几个祖先&#xff08;在往根节点走的过程中遇到的都是它的祖先&#xff09;&#xff0c;一般化&#xff0c;把本身也称为它的祖先 对于两个点&#xff0c;离它们最近的一个公共祖先被称为最近公共祖先 法一&#xff1a;向上标记法&#xf…

Android Studio实现简易计算器(带横竖屏,深色浅色模式,更该按钮颜色,selector,style的使用)

目录 前言 运行结果&#xff1a; 运行截屏&#xff08;p50e&#xff09; apk文件 源码文件 项目结构 总览 MainActivity.java drawable 更改图标的方法&#xff1a; blackbutton.xml bluebuttons.xml greybutton.xml orangebuttons.xml whitebutton.xml layout 布…

Lagrange插值法实验:求拉格朗日插值多项式和对应x的近似值matlab实现(内附代码)

一、实验要求 已知函数表&#xff1a; 求出Lagrange 插值多项式&#xff0c;并计算x1.2处的y的近似值。 二、MATLAB代码 求解多项式&#xff1a; X input(请输入横坐标向量X:\nX); % 获取用户输入的横坐标向量 Y input(请输入纵坐标向量Y:\nY); % 获取用户输入的纵坐标…

简单走近ChatGPT

目录 一、ChatGPT整体背景认知 &#xff08;一&#xff09;ChatGPT引起关注的原因 &#xff08;二&#xff09;与其他公司的竞争情况 二、NLP学习范式的发展 &#xff08;一&#xff09;规则和机器学习时期 &#xff08;二&#xff09;基于神经网络的监督学习时期 &…

竞赛 机器学习股票大数据量化分析与预测系统 - python 竞赛

文章目录 0 前言1 课题背景2 实现效果UI界面设计web预测界面RSRS选股界面 3 软件架构4 工具介绍Flask框架MySQL数据库LSTM 5 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 机器学习股票大数据量化分析与预测系统 该项目较为新颖&am…

2023计算机保研——双非上岸酒吧舞

我大概是从22年10月份开始写博客的&#xff0c;当时因为本校专业的培养方案的原因&#xff0c;课程很多&#xff0c;有些知识纸质记录很不方便&#xff0c;于是选择了打破了自己的成见使用博客来记录学习生活。对于我个人而言&#xff0c;保研生活在前一大半过程中都比较艰难&a…

System Generator学习——时间和资源分析

文章目录 前言一、目标二、步骤三、步骤 1 &#xff1a;系统生成器的时序分析1、时序分析2、解决时间违规问题 四、步骤 2 &#xff1a;系统生成器中的资源分析总结 前言 在本节实验中&#xff0c;你将学习如何通过在 Simulink 中进行仿真来验证设计的功能&#xff0c;以确保在…

MapStruct初窥门径

一、介绍 MapStruct相比于BeanUtils性能更高&#xff0c;能够实现DO&#xff0c;DTO&#xff0c;VO之间的转换&#xff0c;达到解耦合的目的 二、使用前提 添加依赖 <dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifa…