[Spring] IoC的理解及三种依赖注入方式

article/2025/9/14 21:52:18

[Spring] IoC的理解及三种依赖注入方式

  • Spring---IoC的理解及三种依赖注入方式
  • IoC是什么意思
    • 依赖
    • 控制反转
  • Spring提供的依赖注入的三种方式
    • setter注入(属性注入)
    • 构造器注入
    • p命名空间注入(工厂方法注入)
  • @Autowired

Spring—IoC的理解及三种依赖注入方式

IoC是什么意思

IoC,即控制反转,依赖注入(DI)是SpringIoC的一个具体体现,因此,我们可以通过DI(依赖注入)来理解什么是IoC。

要理解什么是依赖注入,首先就要知道什么是依赖

依赖

定义: 例如在类A中使用了类B的实例化对象,即我们在类A中,用new关键字显示地定义了一个类B的对象,那么就说类A依赖类B。

这样有什么不好?
这种依赖的方法,会造成严重的耦合性,如果类B发生了变化,类A也需要发生相应的变换,这样是非常影响应用的开发和相关维护的。那么,有没有一种方式能够使得类与类之间的依赖关系不这么紧密呢?

控制反转

在计算机中,有这样一句话,没有什么是加一层解决不了的,因此,我们引入了Spring的IoC容器,我们将类的实例化交给SpingIoC容器来执行,这样一来,实例化对象的权利就由用户转交给了Spring容器,这就叫作控制反转

Spring提供的依赖注入的三种方式

setter注入(属性注入)

  1. 构造一个pojo实体类
    在这里插入图片描述
  2. 在xml文件中绑定这个pojo实体类,并用property完成属性注入
    在这里插入图片描述
  3. 在需要依赖注入的地方调用ApplicationContext类的对象来调用Bean容器中的依赖对象(创建对象的过程由程序员本身转移到了框架中,此为控制反转),完成属性注入
    在这里插入图片描述

构造器注入

  1. 构建pojo实体类和有参构造方法
    在这里插入图片描述

  2. 配置xml文件,绑定实体类,使用constructor-arg完成有参构造方法注入
    在这里插入图片描述

  3. 调用ApplicationContext的实例化对象调用Bean容器中用有参构造器创建的对象(创建对象的过程由程序员本身转移到了框架中,此为控制反转)完成注入
    在这里插入图片描述

p命名空间注入(工厂方法注入)

  1. 定义pojo实体类,完成setter方法
    在这里插入图片描述

  2. 完成xml文件配置,注意导入p命名空间的头文件:xmlns:p="http://www.springframework.org/schema/p"
    在这里插入图片描述

  3. 使用ApplicationContext的实例化对象调用Bean容器中的对象完成依赖注入
    在这里插入图片描述

@Autowired

@Autowired是一种注解,可以对成员变量、方法和构造函数进行标注,来完成自动装配的工作;@Autowired标注可以放在成员变量上,也可以放在成员变量的set方法上,也可以放在任意方法上表示,自动执行当前方法,如果方法有参数,会在IOC容器中自动寻找同类型参数为其传值。


http://chatgpt.dhexx.cn/article/B68IBqHZ.shtml

相关文章

Spring依赖注入的三种方式

目录 一、变量注入(Field Injection) 二、构造器注入(Constructor Injection) 三、setter方法注入 (Setter Injection) 四、使用场景 Spring的依赖注入,我们一般使用Autowired注解来完成&am…

依赖注入的三种方式

DI(依赖注入) 注入的三种方法:构造器方法注入,set注入,基于注解的注入(接口注入) 1:构造器方法注入 创建一个Address类; public class Address {private String address;public Address() {}pu…

Pubmedy的使用教程

使用方法如下: 使用前先配置Sci-Hub的地址,如果网址不失效,配置一次即可 选中文章的DOI,右击选择Sci-Hub Search即可自动跳转到文章对应的Sci-Hub界面

Pubmedy加载时显示程序包无效的解决方案

目前谷歌应用商城已经下架Pubmedy,本地安装又遇到程序包无效:“CRX_HEADER_INVALID”。 解决方案: 将PubMedy.crx重命名为PubMedy.rar或者PubMedy.zip解压到要安装的位置找到扩展程序选项,并启用开发者选项选择加载已解压的扩展程…

细胞实验文献检索——PubMed | MedChemExpress

今天我们就以小白的课题——自噬 (Autophagy) 为例,给大家展示一波。这个时候给大家隆重介绍我们的——PubMed。 PubMed 提到 PubMed,相信大家应该都不陌生,它是常用的国外数据库之一,也是小编查找文献最喜欢的工具。自成立以来…

免费获取论文全文的方法,SCI-HUB的使用教程

很多人不在学校期间需要看文献全文,很多人获取文章的方式或是在网上求助或是给原作者索要。在SCI—HUB出现后,这些麻烦都不需要。SCI—PUB上保存了超过了4700万篇科研文献。SCI—PUB的网址 使用方法: 方法一、打开网页将想要论文的URL地址&…

SCI-HUB丨最新文献网址

sci-hub:在我们获取文献与学术论文的道路上提供了极好的便利,可以从中得到免费的文献下载,但也因为这样遭到各大出版社:ai思为尔,施普林格,wiley等出版社的打击与封杀,使得Sci-Hub在域名上不得不…

pubmed显示服务器不稳定,PubMed天天用,可是你真的用对了吗?

你是用关键词在PubMed上找论文的吗?如果关键词好几个,由于单词间的空格键存在AND命令,导致明明要搜的是词组,搜索不是被放大就是缩小,很难检索到合适量且关联度高的文。例如,你想找和肠炎与肿瘤坏死因子相关…

pubmed文献批量化下载器

1.代码如下 import time import requests import pandas as pd import osdef getArticle(PMCID,NIHMSID,DOI,title,path):print(PMCID,NIHMSID,DOI,title,path)os.chdir(path)headers {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit…

PubMed插件:分区、影响因子和即时IF一目了然,还能秒下文献(亲测有效)

Pubmed作为生物医药研究者最常用的免费文摘数据库,素有检索江湖上的泰山北斗之称,用好Pubmed,其他一切pubmed镜像网站都是浮云。今天小编给大家介绍一款完全免费的无需登录的pubmed插件,他可以解决pubmed本身不显示杂志影响因子的…

干货分享|被PubMed收录的论文,在MEDLINE和SCIE能检索到吗?

PubMed PubMed是由美国国家医学图书馆(National Library of Medicine,NLM)的国家生物技术信息中心(National Center for Biotechnology Information,NCBI)开发研制的一个医学文献网络数据库。PubMed是当今…

MEDLINE与PubMed有什么区别?检索范围包含哪些?

PubMed PubMed是由美国国家医学图书馆(National Library of Medicine,NLM)的国家生物技术信息中心(National Center for Biotechnology Information,NCBI)开发研制的一个医学文献网络数据库。 PubMed是当今…

怎么找生物信息论文的数据,PubMed太有用了!

小白的创作灵感日志: 由于要跑通一篇Paper A的代码,我需要找到它用到的所有数据集,今天我要找的是 Nagano 细胞周期数据集,刚开始脑子一团浆糊,直接在谷歌上搜“Nagano”,出来的全都是日本的一个名叫Nagano…

PubMed文献影响因子怎么显示保姆教程

NCBI文献影响因子显示: 安装的第一个插件:Tampermonkey插件网址:Greasy Fork - 安全、实用的用户脚本大全 1.选择合适的浏览器进行安装 2.点击安装 安装的第二个插件:scholarscope 1.网址:Scholarscope | 更好的科研…

文献管理器PubMedPro使用

PubMedPro介绍 Pubmed.pro文献检索文献管理网站: 您可以将自己电脑中的文献PDF批量上传至本网站,所有文件会自动同步至云端,您可以子啊任意一台电脑、平板、手机,通过自己的账号在线访问文献PDF。也可以分享自己的文献给身边的同…

科研小助手PubMed的插件PubMedy

Scholarscope首页地址: https://www.scholarscope.cn/(此链接就可以帮你安装,里面“查看安装教程”下面有个“立即前往安装教程页面”按钮,点击即可。) 此插件的安装也很简单,在Chrome浏览器的安装跟其他插件的安装没有区别。 而…

PubMed插件神器之PubMedy和Scholarscope(末尾附赠Google截屏神器)

生信读研第一件事绝对是读大量文献,那么如何在PubMed大量的文献中筛选出自己想要并且高质量的呢?当然第一反应肯定是检索式,但这得自己清楚的知道课题的关键词才能准确筛选。 刚进实验室,大师兄就扔给我两篇文献让我去了解。但是!…

jdk完全卸载方法

Win7系统下安装jdk报错;错误信息:“ Windows Installer 程序包有问题。此安装需要的DLL不能运行。请与您的支持人员或程序包开发商联系”。 造成该问题的原因是系统以前安装过jdk,重新安装需要彻底卸载旧的jdk,这样重新安装才能成…

JDK卸载与安装

JDK卸载 **第一步:**通过环境变量找到 JDK安装路径。 **第二步:**删除JDK安装包。 **第三步:**删除JAVA_HOME及path下关于java的目录 **第四步:**打开cmd 命令输入java -version检验是否删除成功。 安装JDK 1、百度搜索JDK8&#xff…

卸载和安装JDK

JDK全称Java Developent Kit,Java跨平台是使用了虚拟机(jvm)在任何地方都可以运行。JDK包含了JRE和JVM。 卸载JDK 1、删除java的安装目录: 右击我的电脑-属性,做已下的操作&…