首页 > 其他分享 >Spring--依赖注入:setter注入和构造器注入

Spring--依赖注入:setter注入和构造器注入

时间:2022-11-14 22:02:28浏览次数:64  
标签:save 里面 定义 -- Spring 引用 注入 setter

依赖注入:描述了在容器中建立Bean于Bean之间依赖关系的过程

setter注入

在本来已经在service里面引用了bean的相关方法的基础上,再引用之前已经写过的userDao的对象,即在service对象里面既引用到BeanDao,也引用到UserDao,如图所示:

然后需要在这里再定义上他们的setter方法:

再在service的save方法里面引用到引用对象的save方法:

(必须要定义到setter方法,且在save方法里面引用他们自身的save方法,否则无法在ApplicationContext.xml文件里面定义bean)

定义的话,就像这样:

运行结果如下图所示:

当然啦,还可以定义其他的数据类型:

然后,以上的数据类型是在BookDaoImpl里面定义的,所以想要在Spring里面引用它的话,就需要在ApplicationContext.xml文件定义的bookDao的bean标签里面进行嵌套,如图所示:

运行出来的话,value里面的值,就相当于付给某个对象的数据的具体值:

构造器注入

通过名称可以看出,这次的注入方式主要是依赖于构造方法,不再依赖于set方法。

通过学习可以发现,这两种注入方式基本上是一致的,就是使用的方法形式发生了改变,具体实现如下:


将之前的Property换成上图的形式,里面的属性都没有发生改变

这种方式会存在这样一个问题:该种方式耦合度过高,当我改变book里面某一个属性的名称时,意味着.xml文件里面的name属性也要进行变化,灵活性太低

可以更改成下面这种方式,将name属性改成type属性:

然后就会发现,如果有两个数据类型相同的对象,就又出现问题了,那我们又可以改成这种形式,这样的话,就会有顺序上面的要求,使用index位置属性代替type类型:

结尾的话,就是关于这两种注入方式的比较

如果是对于自己开发的模块的话,建议使用setter注入;

构造器注入与setter注入相比,不如setter注入灵活性强;

好啦!先再见啦!

标签:save,里面,定义,--,Spring,引用,注入,setter
From: https://www.cnblogs.com/liuzijin/p/16890066.html

相关文章

  • 基于matlab的卫星网络DCAR编码感知路由发现仿真
    FPGA教程目录MATLAB教程目录一、理论基础当一个源节点有数据要向目的节点发送且在当前路由缓存中未发现可用路径时,则启动路由请求过程,下面分步对该过程进行说明:步骤1:......
  • 【链接库】静态库与动态库区别?
    在C语言中,函数库分为两种类型,一种是静态库(库程序是直接注入目标程序,不分彼此,库文件通常以.a结尾),另一种为动态库(库程序是在运行目标程序时加载,库文件通常以.so结尾)。文......
  • 噪声与带宽(未学完)
    1.信道噪声1)信道噪声的分类:a.按噪声来源分类:人为噪声、自然噪声、内部噪声(如热噪声)等。b.按噪声性质分类:脉冲噪声、窄带/单频、内部噪声(如热噪声)等。其......
  • 求助
    vs2013中在我跟着一位博主敲下一串代码时内容如下  运行时会出现找不到该文件夹,这是咋回事?当我把前面两个内容删掉时就没事#define_CRT_SECURE_NO_WARINGS1#inclu......
  • 装饰器
    所谓装饰,就是锦上添花,首先要有本体存在,而且在不破坏本体的情况下给本体添砖加瓦。下面写个简单的例子:publicabstractclassBaseAction{publicabstr......
  • 快速对一个数进行质因数分解(预处理可降低为log复杂度)
    对一个数进行质因子分解的朴素做法是O(sqrt(n))的试除法如果可以预处理出mindiv[i]数组,即每个数的最小质因子,则进行因式分解时,可以对数n,不断执行n/=mindiv[n],即可分解。......
  • 什么是Session;request.getSession().setAttribute()
    Session:会话控制,是服务器为了保存用户状态而创建的一个特殊的对象。=>用于存储信息的一个对象   当我们在服务端使用session时,首先要获取session,下面这个图就对服务......
  • 软件设计模式白话文系列(九)装饰者模式
    1、描述通过把对象引入包含行为的特殊封装中来为对象增强功能的模式。2、模式结构与实现逻辑具体业务类:这个类的对象就是需要被装饰者模式加强的对象。需要实现抽象装......
  • 嵌入式-Linux常用初级指令和介绍
    ls:列出当前文件夹下有哪些文件 ls-a:显示所有文件,包括隐藏的文件和文件夹pwd:显示在当前哪个文件夹下面  mkdir+新建文件夹名称:新建文件夹  进入文件夹:cd+......
  • Nginx 图形管理工具 Nginxproxymanager
    1.简介正常情况下Nginx的管理和日常操作都是通过Shell的方式进行,要求操作人员熟悉操作系统环境和Nginx配置文件中的各种设置参数。在Nginx 的配置文件多(大于100个)......