当前位置: 首页 > news >正文

Spring——配置文件实现IOC和DI入门案例

 

现在先如图创建如下的Maven项目,在业务层和数据层分别写上对应的接口和实现类

  

 在BookServiceImpl中创建一个BookDaoImpl对象,并调用里面的save()方法。

在测试类里面new一个bookservice的实现类,调用save()方法 

输出如下图所示

 

要使用IOC容器要先做点准备

第一步

在pom.xml导入相关的依赖,爆红就刷新一下从中央仓库重新导入 

<dependency><groupId>org.springframework</groupId><artifactId>spring-context</artifactId><version>5.2.10.RELEASE</version>
</dependency>

第二步

在resources中新建——>XML配置文件——>Spring配置,上一步没有导好的话这里是不会有Spring的 

第三步 

在配置文件里面加入想要加入的bean,按照下面的方法写入的类的地址,让它成为一个bean对象,另外在外面要想使用这个对象,要使用标识的id来调用。 

bean标签表示配置bean

class属性表示给bean定义类型

id属性给标示的bean起名字

 第四步

想要使用IOC容器里面的bean对象要先获取IOC容器,再去获取bean

这里使用ApplicationContext方式加载XML.用这个借口的实现类去获取到定义的IOC容器

 再用容器对象的方法得到一个bean对象,尝试调用里面的方法,成功调用 

 

再来尝试获取一个bookService接口实现类的bean对象

 输出入下图所示

以上就是IOC入门案例的全部

上面的案例中在BookServiceImpl里面还是有在new一个对象,为了达到解耦的效果,需要利用依赖注入,也就是下面的DI入门案例 

在上面案例代码的基础上改动,不再采用new对象,改为使用set方法,这里需要的参数通过配置文件得到 

在配置文件里面要让BookService得到一个bookdao就要在BookService的bean对象做修改

property标签表示配置当前bean的属性

name属性表示配置哪一个具体的属性

ref属性表示参照当前容器中的哪一个bean

 上面有两个bookDao,但是含义是不一样的

name里面的对应

ref里面的对应 

  

 在测试类里面的代码不用改动,运行输出如下,正常运行 

 

http://www.lryc.cn/news/31591.html

相关文章:

  • 机器学习100天(四十一):041 对偶支持向量机-公式推导
  • C语言下的signal()函数
  • google独立站和与企业官网的区别是什么?
  • Vue3---语法初探
  • esp8266WiFi模块通过MQTT连接华为云
  • 苹果新卫星专利公布,苹果Find My功能知多少
  • [ICLR‘22] DAB-DETR: Dynamic Anchor Boxes Are Better Queries for DETR
  • 双周赛99(贪心、数学、区间合并计算、换根DP)
  • OpenText Exceed TurboX(ETX) 客户案例——弗吉尼亚理工大学
  • 【Python】torch.norm()用法解析
  • C++核心编程<内存分区模型>(1)
  • 电路基础(1)电路模型和电路定律
  • pytest 基础
  • 软测入门(七)python操作数据文件(Json、yaml、csv、excel、xml)
  • 【小程序】django学习笔记1
  • MySQL常用函数整理
  • 设计模式—“组件协作”
  • vue里使用driver.js实现项目功能向导指引
  • 详解JAVA类加载
  • 高斯分布、高斯混合模型、EM算法详细介绍及其原理详解
  • [Linux入门篇]一篇博客解决C/C++/Linux System Call文件操作接口的使用
  • 数据结构和算法学习记录——删除有序数组中的重复项、合并两个有序数组
  • FPGA实现模拟视频BT656解码 TW2867四路PAL采集拼接显示 提供工程源码和技术支持
  • 【建议收藏】超详细的Canal入门,看这篇就够了!!!
  • KubeSphere 社区双周报 | OpenFunction v1.0.0-rc.0 发布
  • 查漏补缺3月
  • 如何使用Java实现类似Windows域登录
  • 生成模型与判别模型
  • Kotlin lateinit 和 lazy 之间的区别 (翻译)
  • Golang alpine Dockerfile 最小打包