面试题-Spring家族与SpringIOC

1.spring家族的介绍

在这里插入图片描述
Spring简单图:
在这里插入图片描述

2.IOC原理

在这里插入图片描述
IOC就是原先代码里需要开发者实现对象的创建和关系依赖,反转交给SpringIOC容器管理对象的生命周期和对象之间的依赖关系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
依赖注入的方式:
Setter:实现特定属性的public setter方法来让IOC容器调用所依赖类型的对象
Interface:实现特定的接口,以供IOC容器注入所依赖的对象
Constructor:基于构造函数,实现特定的构造函数,在创建对象时,让IOC注入所依赖类型的对象。
Annotation:通过java的注解机制来让IOC容器注入所依赖类型的对象。例如:Spring框架里的autowired
在这里插入图片描述
**Ioc容器的优势:**容器管理着bean的生命周期,负责bean的依赖注入。
1.避免在各处使用new来创建类,并且可以做到统一维护。
2.在创建实例的时候不需要了解其中的细节。
在这里插入图片描述
在这里插入图片描述
大大提高了项目的可维护性,降低了开发难度。

3.SpringIOC的应用

读取Bean的配置信息,并在Spring容器中生成Bean的定义注册表;
根据注册表去实例化Bean;
将Bean实例放到Spring容器中。装配好Bean之间的依赖关系,为上层提供准备就绪的上层环境;Spring提供一个配置文件,描述Bean以及Bean之间的依赖关系,利用java语言的反射功能,实例化Bean,并建立Bean之间的依赖关系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
常用容器:BeanFactory.
BeanFactory是Spring框架的基础设施,是IOC容器的基础接口。所有容器都从它这里继承实现而来。为了能够明确描述各个对象之间的依赖关系,提供了三种管理方式。在XML中进行显示配置;在java中进行显示配置,注解方式。

在这里插入图片描述
Spring容器在启动的时候,会将xml或者注解里的bean的定义解析成spring内部的beanDefinition。
在这里插入图片描述
registerBeanDefinition方法实现。存储在beanDefinitionMap.还将Bean的name存储到beanDefinitionNames里。以便后续Bean的实例化。
在这里插入图片描述
在这里插入图片描述

在SpringIOC中,默认的情况下,bean都是以单例模式下的。
ApplicationContext是高级容器。面向使用Spring框架的开发者,除了能够提供IOC容器的基本功能外,还能为用户提供附加服务。

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RedHat9 | podman容器-续集

一、管理容器存储和网络资源 使用容器来运行简单的进程,然后退出。可以配置容连续运行特定服务,如数据库服务。如果持续运行服务,需要向容器添加更多的资源,如持久存储或对其他网络的访问权限。 针对企业容器平台上的大型部署&a…

数据资产安全策略的定制化之道:深入了解各企业独特需求,量身打造个性化的数据资产保护方案,确保数据安全无虞,助力企业稳健发展

目录 一、引言 二、企业数据资产安全现状分析 (一)数据安全风险多样化 (二)传统安全措施难以满足需求 (三)企业数据资产安全意识亟待提高 三、定制化数据资产安全策略的重要性 (一&#…

SuperMap GIS基础产品FAQ集锦(20240701)

一、SuperMap iDesktopX 问题1:对于数据提供方提供的osgb格式的数据,如何只让他生成一个s3mb文件呢?我用倾斜入库的方式会生成好多个s3mb缓存文件 11.1.1 【解决办法】不能控制入库后只生成一个s3mb文件;可以在倾斜入库的时候设…

永磁同步电机离线参数识别

引言 永磁同步电机(PMSM)因其结构简单、功率密度高、转矩惯量比大和效率高等优点,在工业生产、航空航天和新能源交通等领域得到了广泛应用。然而,传统的参数辨识方法依赖位置传感器,这不仅增加了硬件成本,…

如何借用物联网快速实现高标准农田信息化

如何借用物联网快速实现高标准农田信息化 高标准农田信息化,作为现代农业发展的重要基石,是指在建设高产、稳产、节水、环保的农田基础上,深度融合现代信息技术,实现农田管理的精准化、智能化和高效化。物联网(Intern…

sql server启动、连接 与 navicat连接sql server

一、sql server 启动 1.搜索cmd->以管理员身份运行 2.输入以下命令 net start mssqlserver 3.服务器启动成功 二、sql server连接 1.打开ssms,输入,连接 2.右键,属性 3.连接,勾选允许远程连接到此服务器 三、navicat连接sq…

20人团队如何免费使用 Atlassian 云产品?

企业赚钱越来越难,尤其是初创团队或小型团队更倾向于使用免费工具支持业务。团队规模影响协作复杂度,Atlassian 考虑到小团队的需求,提供了多种选择。比如,Jira 和 Confluence 的云版本有免费版,包含基本的项目管理功能…

三坐标测量机:柔性生产制造中的高精度测量解决方案

柔性生产制造是制造业的核心竞争力之一。它强调生产线的灵活性和适应性,以满足市场对产品多样化和个性化的需求。在当今快速变化的工业环境中,随着消费者对产品个性化和定制化需求的增加,柔性生产制造和三坐标测量机的结合,为智能…

MSVCR120.DLL丢失的多种修复方法,助你快速解决dll问题

在日常生活和工作中,电脑已经成为我们不可或缺的工具。然而,在使用电脑的过程中,我们常常会遇到一些问题,其中之一就是电脑运行软件时提示找不到msvcr120.dll。如果该文件缺失或损坏,可能会导致依赖它的应用程序无法启…

大聪明教你学Java | 深入浅出聊 RocketMQ

前言 🍊作者简介: 不肯过江东丶,一个来自二线城市的程序员,致力于用“猥琐”办法解决繁琐问题,让复杂的问题变得通俗易懂。 🍊支持作者: 点赞👍、关注💖、留言&#x1f4…

一、课程介绍,基础—环境安装、判断、循环语句等(爬虫及数据可视化)

一、课程介绍,基础—环境安装、判断、循环语句等(爬虫及数据可视化) 1. 课程介绍1.1 相关内容1.2 学习目标1.3 学习内容安排 2. python2.1 环境配置2.2 标识符和关键字2.3 运算符2.4 判断语句2.5 循环语句 1. 课程介绍 1.1 相关内容 10天的…

Node.js安装及配置

文章目录 1.安装Node.js2.创建目录3.配置环境变量4.配置全局安装路径和缓存路径(可选)配置Webstorm 1.安装Node.js https://registry.npmmirror.com/binary.html?pathnode 推荐安装18.x版本 2.创建目录 下载解压后进入目录,创建node_global和node_cache两个空文…

AI播客下载:Practical AI(人工智能最新进展)

Practical AI这是由 http://Changelog.com推出的节目。Changelog 本身做了许多跟软件开发的 podcast 节目 。比如《The Changelog》播客 ,这是一个专注于软件领域的播客,每周一发布最新新闻摘要,周三进行深入技术访谈,周五则是访谈…

Vue-element 组件dialog右上角点击 X 清空表单校验信息

问题: 点击确定触发校验后,点击弹窗右上角的 X号关闭弹窗后再次打开弹窗,校验规则没有被清空 解决方法:

Linux——数据流和重定向,制作镜像

1. 数据流 标准输入( standard input ,简称 stdin ):默认情况下,标准输入指从键盘获取的输入 标准输出( standard output ,简称 stdout ):默认情况下,命令…

每日复盘-20240701

今日关注: 20240701 六日涨幅最大: ------1--------301182--------- 凯旺科技 五日涨幅最大: ------1--------300977--------- 深圳瑞捷 四日涨幅最大: ------1--------300977--------- 深圳瑞捷 三日涨幅最大: ------1--------300461--------- 田中精机 二日涨幅最…

迈阿密色主题学科 HTML5静态导航源码

源码介绍 迈阿密色主题学科 HTML5静态导航源码,源码直接上传可用,有技术的可以拿去写个后端搜索调用百度接口,也可用于做引导页下面加你网址添加一个A标签就行了,很简单,需要的朋友就拿去吧 界面预览 源码下载 迈阿…

nginx限制特定国家或地区的访问

一、查看 1. 先查看本地nginx是否有ngx_http_geoip2模块(如果有的同学有该模块可以直接跳到下面直接配置nginx服务) nginx -V 二、安装 1. 安装所需依赖 yum install -y libmaxminddb-devel pcre-devel zlib-devel gcc gcc-c make git 2. 下载ngx_h…

Docker 镜像导出和导入

docker 镜像导出 # 导出 docker 镜像到本地文件 docker save -o [输出文件名.tar] [镜像名称[:标签]] # 示例 docker save -o minio.tar minio/minio:latest-o 或 --output:指定导出文件的路径和名称[镜像名称[:标签]]:导出镜像名称以及可选的标签 dock…

Web2Code :网页理解和代码生成能力的评估框架

多模态大型语言模型(MLLMs)在过去几年中取得了爆炸性的增长。利用大型语言模型(LLMs)中丰富的常识知识,MLLMs在处理和推理各种模态(如图像、视频和音频)方面表现出色,涵盖了识别、推…