【Spring(三)】DI入门案例(XML版)

news2024/9/24 15:19:57

文章目录

  • 前言
    • DI入门案例
  • 总结

前言

  前面我们已经演示了IOC入门案例的介绍,里边还有一些东西是耦合的,接下来我们就来学习DI的入门案例来解决这个问题💪💪。

DI入门案例

  我们先来想一下,你做DI这个首先得先让IOC容器管着bean,所以我们现在做的是基于上一个案例的基础上实现的,这是第一点,我们现在的Service中是使用new的形式创建的Dao对象,这句话还留吗❓是不是不能留了,你只要写上实现类,耦合度必然高,那我们还做什么DI呀🤣🤣,如果不能留的话,这个对象如何进去呢❓,也就是Service中需要的Dao对象如何进入到Service中❓,在这里边我们是提供一个方法来传对象,接下来又出现问题了,Service与Dao间的关系如何来描述, 也就是 Spring容器如何知道Service与Dao的关系呢,我想有些朋友就想到了,用配置的方法来将两者之间的关系告诉Spring容器。以上是我们还没有开始做之前的一些分析,能够帮助我们快速整理思路🎉🎉~~

  首先删除业务层使用new的方式创建的dao对象👇👇

在这里插入图片描述

  接下来给它生成set方法👇👇

在这里插入图片描述

  现在你要的东西我也有方式进去了,但是你要什么这个关系你得告诉我,所以我们接下来写配置👇👇,在applicationContext.xml文件中告诉ServiceDao的位置,也就是配置service与dao的关系。

在这里插入图片描述

  注意:name属性对应 service层中的Dao对象的名称,ref属性就是参照的意思,里边写的是配Bean时,Dao的属性id❗❗

  运行结果👇👇

在这里插入图片描述

  如果我们将如下代码拿掉,它还会有关系绑定吗?👇👇

在这里插入图片描述

  结果会出现空指针异常,显然是没有关系绑定的👇👇

在这里插入图片描述

总结

  到这里我们DI的案例就已经说完了,在DI的入门案例中我们首先删除了使用new的形式创建对象的代码,接下来给它提供了依赖对象对应的setter方法,思考一下,这个方法谁调的呢?我们就想,谁要给你往里边传对象呢?是Spring容器,所以这个方法是Spring容器调的,写好这个以后它们之间的关系必须绑定,所以我们通过配置的方式将它们的关系进行了绑定,虽然name和ref两个属性都写的是bookDao,但是意思却不同,ref的bookDao表示当前容器中对应的Bean的属性id,而name的bookDao表示的是你现在的service实现类中属性的名称,这是我们需要注意的,这下我们DI的入门案例就已经讲完了💪💪

  最后,如果有什么错误的话,大家可以私信我📬📬,希望大家多多关注+点赞+收藏 ^_^🙏🙏,你们的鼓励是我不断前进的动力💪💪!!!

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32 TIM PWM中阶操作:互补PWM输出

STM32 TIM PWM中阶操作详解:互补PWM输出 STM32 TIM可以输出管脚PWM信号适合多种场景使用,功能包括单线/非互补PWM输出,双线/互补PWM输出,以及死区时间和刹车控制等。 实际上,因为早期IP Core的缺陷,早期的…

万应低代码12月重点更新内容速递

速览版 详情版 低代码开发效率升级 01 动作流 动作编排过程中涉及到多条件判断时使用,即:满足某条件可执行一条分支,不满足则执行“其他”分支。 【使用场景】 ● 以“个人所得税计算”场景为例,不同收入水平的人输入不同的收…

人工智能对联生成 API 数据接口

人工智能对联生成 API 数据接口 基于百万数据训练,AI 训练与应答,多结果返回。 1. 产品功能 AI 基于百万历史对联数据训练应答模型;机器学习持续训练学习;一个上联可返回多个下联应答;毫秒级响应性能;数据…

关键字:final

文章目录一、final修饰类修饰方法修饰变量修饰属性修饰局部变量static final练习每日一考一、final final:最终的 final可以修饰的结构:类、方法、变量 修饰类 此类不能被其他类所继承 修饰方法 此方法不可以被重写 修饰变量 此时的“变量”就称为…

ACL论文总结

「博士毕业一年,我拿下 ACL Best Paper」 在不久前结束的自然语言处理NLP,领域顶级学术会议ACL2021上,字节跳动AL lab研究院许晶晶,完成了他的演讲。 在全球顶会做完分享后,许晶晶感到很欣慰,没想到&#…

自然语言处理重点 第11章 机器阅读理解 复习

机器阅读理解复习机器阅读理解概述机器阅读(MRC)理解与问答系统(QA)的区别:本章内容:MRC 任务分类:完形填空形式(cloze-style)选项形式片段抽取形式(span extraction)文本生成形式(free-answer/…

uCharts柱状图横向排列及不同条件下得数据颜色不同,雷达图的使用及各个参数的配置讲解

一:雷达图 1,建立一个盒子,内部存放uCharts图表 在data数据中return内部配置如下数据: chartData: {},//您可以通过修改 config-ucharts.js 文件中下标为 [radar] 的节点来配置全局默认参数,如都是默认参数,此处可以不传 opts 。实际应用过程中 opts 只需传入与全局默认…

【台式机DIY】我的第一台台式机电脑配置清单

文章目录[toc]【第一台台式机】一、电脑配置清单【电脑小白我科普】一.CPU1.选购:主流品牌2.选购:如何选择3.参数:接口4.参数:频率5.参数:核心和线程6.参数:功耗7.参数:缓存二.主板1.选购&#…

Django开发员工管理系统(Part I)

文章目录1. 准备工作1.1 创建django项目1.2 创建app1.3 配置settings.py文件,完成app注册2. 设计数据库表结构3. 在MySQL中生成表3.1 创建数据库3.2 修改配置文件,连接MySQL数据库3.3 通过django命令生成数据库表4. 编写部门列表4.1 (前段页面…

报表开发工具FastReport.NET的十大常见问题及解决方法(二)

Fastreport是目前世界上主流的图表控件,具有超高性价比,以更具成本优势的价格,便能提供功能齐全的报表解决方案,连续三年蝉联全球文档创建组件和库的“ Top 50 Publishers”奖。慧都科技是Fast Reports在中国区十余年的友好合作伙…

php宝塔搭建部署实战海洋cms视频内容管理系统源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套php开发的海洋cms视频内容管理系统源码,感兴趣的朋友可以自行下载学习。 技术架构 PHP7.2 nginx mysql5.7 JS CSS HTMLcnetos7以上 宝塔面板 文字搭建教程 下载源码&#…

在动态规划的海洋中遨游(一)

前言:\textcolor{Green}{前言:}前言: 💞本专栏用于本人刷算法的过程。主要包含刷题中的感受以及知识点缺陷。对于学习者来说可以作为参考。 目前更新的算法内容会比较多,很多都是通过刷题来进行知识点的总结&#xff0…

计算机SCI论文,很难发表吗?应该如何发表? - 易智编译EaseEditing

首先,找题目需要符合国际标准,但不要缺少创新的探究题目。这个题目可以是最新的技术,也可以是最新的领域; 也可以是探索过很多次的课题。但是如果我们想成功交付,如何创新是我们需要思考的。 其次,因为英语…

为什么有的电源不是从0V开始上电的

大家可以看下,这张图片是测试XILINX 的FPGA 325T的上电时序图,其中绿色的线是FPGA 核心电源VCCINT 1.0V的波形,黄色的是BANK的电源2.5V的波形,蓝色的是辅助电源1.8V 的波形大家有没有发现这个时序图中黄色的波形,也就是…

Java之多线程详解

目录 一、线程简介 进程(Process )与 线程(Thread) 二、线程创建 1、线程Thread 1.1. 步骤 1.2 应用 1.3 案例:下载图片 2、实现Runnable接口 2.1 步骤 2.2 应用 3.小结 3. 实现Callable接口(了解…

java开发的考研系统大学生考研推荐网站考研网站源码

简介: 考研信息推荐查询。主要是管理发布管理考研的知识文章,或者上传资料,发布考研的视频。学生可以注册后下载资料,查看考研文章视频等。文章分为vip文章和普通文章,学生查看vip文章需要消耗积分。 演示视频 https…

FX5U 原点回归指令 DSZR

上一篇文章中转述了网友的文章,因回原点实在重要,再详细描述DSZR指令。 DSZR是具有自动搜索功能的原点回归指令。它对当前位置没有要求,在任意位置哪怕是停止在限位开关位置上都能完成原点回归操作。 1.指令格式 S1 原点回归速度或存储了数…

linux虚拟机搭建kafka(单节点、使用kafka自带zookeeper)

本文使用kafka单节点安装及配置,并使用kafka自带的zookeeper。一般kafka需要起三个kafka构成集群,可以连单独的zookeeper,本文不涉及。一、kafka下载解压安装包下载地址:https://archive.apache.org/dist/kafka/2.5.0/kafka_2.12-…

MyPerf4J结合Grafana和InfluxDB采集JVM以及QPS指标

MyPerf4J结合Grafana和InfluxDB采集JVM以及QPS指标 背景 ​ 需要采集现场java程序运行的状态数据(包括JVM指标以及QPS,RPS指标等)。需要采集的方式尽可能轻量化 ​ 结合实际情况采用MyPerf4J作为Java探针,InfluxDB作为数据存储端,Grafana作为数据展示…

15---整合Echarts和完善头像上传

1、完善头像上传功能 上次写的头像上传功能&#xff0c;不能实现上传保存后立刻刷新右上角头像&#xff0c;这里做一个完善。首先是在Manage.vue中&#xff08;父&#xff09;&#xff0c;写刷新User的方法 //传一个user过去到header <Header :collapseBtnClass"col…