Java面试之SpringBoot篇

2023-09-13 16:04:45

每日一面之Boot篇:讲一讲SpringBoot的自动装配吧

面试是一个短时交流的过程,这个过程中包涵首因效应的管理,晕轮效应的管理,如何做好面试管理对求职者至关重要。作为Java的学者,面试题是面试官考量我们的一个基本标准,尤其是对于没有实际项目经验的大学生,本专栏专门针对一切比较常见的问题做出整理,欢迎各位投稿、订阅本专栏,每日分享一个面试小技巧和一篇面试题,细水长流,大家一起加油。

面试技巧:管住自己的嘴巴,三思而后答
切记面试的问题每一个都不要问了就直接答复,稍作停留,整理思路,
该答复的答复,不是问题的点不要轻易涉及,除非你对此很熟悉

面试官:讲一讲SpringBoot的自动装配吧

沉思后答:

嗯。。。。。
SpringBoot 里面的自动装配,简单来说就是自动把第三方组件的Bean装载到Spring IOC容器里面,而不需要开发人员再去专门写Bean的装配配置。
'在SpringBoot里面,只需要再启动类加上@SpringBootApplication注解就可以实现自动装配'
 而SpringBoot是一个复合型的注解,真正实现装配的是@EnableAutoConfiguration

image-20230913112430330

@EnableAutoConfiguration实现自动装配呢,主要依靠三个核心的关键技术
1、引入Starter启动依赖组建的时候呢,这个组件必须包含@Configuration配置类,在这个配置类里面通过@Bean注解声明需要装配到IOC容器的Bean对象
2、这个配置类是放在第三方Jar包里面的,然后通过SpringBoot约定大于配置的思想,把这个配置类的全路径放在了classpath:/MATE-INF/spring.factories文件中。这样的话Spring就知道第三方Jar包里面配置类的位置,而这个过程呢,主要是通过Spring里面的SpringFactoryLoader来完成的。
3、SpringBoot拿到了第三方jar文件里面生命的配置类有以后呢,在通过Spring的ImportSelector接口,来实现对这个配置类的动态加载。

其实,SpringBoot就是约定大于配置这一设计理念下的产物,所以在里面会有很多地方都可以看到这类思想的实现。而这类设计理念,可以让我们开发人员更专注于核心业务代码的编写,而不用去关注那些只做一次的与业务无关的配置。

而且,自动装配的思想在SpringFramework3.x的版本里面,就已经有了实现的雏形,就是@Enable注解。Enable注解是模块驱动的意思,我们只需要增加某个@Enable注解就能自动打开某个功能,而不需要去针对这个功能去做Bean的配置,@Enable底层也是帮我们去自动完成这个模块相关Bean的注入。

以上呢,就是我对Spring Boot 自动装配机制的理解。

其实我们让面试官知道的,不是我们对于问题答复的多少,而是我们对于这个技术领域理解的深度和自己的见解,从而让面试官在一大堆求职者中,对我们产生清晰的印象,平时我们在背诵八股文的时候,也不要只是会刻板的记忆,尝试跟身边的朋友或对着镜子自己讲解几遍,就能产生自己的话术去描述去回答问题。

更多推荐

HEXO 基本使用

1新建、编辑并预览文章1.新建文章hexonew[layout]title#或hexon[layout]title创建文章前要先选定模板,在hexo中也叫做布局。hexo支持三种布局(layout):post(默认)、draft、page。我们先介绍如何使用已有布局,后面还将会介绍如何自定义布局。在博客目录下输入以下命

macOS 中 聚焦搜索 的使用教程

macOS中的聚焦搜索是一个强大的工具,它可以帮助你快速找到文件、应用程序、联系人、电子邮件、互联网搜索结果等。下面是macOS中聚焦搜索的使用教程:1.打开聚焦搜索:使用键盘快捷键:按下键盘上的Command键和空格键(⌘+空格),即可打开聚焦搜索。这是最快的方式。使用鼠标或触控板:点击屏幕右上角的聚焦搜索图标(放大

详细介绍下VLAN隔离与VLAN之间互联

什么VLAN?VLAN代表虚拟局域网(VirtualLocalAreaNetwork),它是一种在物理网络基础上创建逻辑上独立的虚拟网络的技术。VLAN允许将一个局域网划分为多个虚拟的逻辑网络,这些虚拟网络在逻辑上相互隔离,就像它们是物理上分开的一样。通过使用VLAN,可以将不同的设备、用户和资源划分到不同的虚拟网络中

每日练习-8

目录一、选择题二、算法题1.另类加法2、走方格的方案数一、选择题1、解析:当使用new运算符创建一个类的对象数组时,会调用该类的构造函数来初始化每个对象。因此,如果创建了5个对象,那么构造函数会被调用5次。当使用delete运算符删除一个指针时,会调用该指针指向的对象的析构函数来释放内存。但是,如果该指针指向的是一个对

【Spring】IOC基本用法

🎈博客主页:🌈我的主页🌈🎈欢迎点赞👍收藏🌟留言📝欢迎讨论!👏🎈本文由【泠青沼~】原创,首发于CSDN🚩🚩🚩🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页目录🌟一、向Spring容器中注册Bean🌟🌟1.1、使用MAVEN注入依赖🌟🌟1.2

华为智慧搜索,下一片流量蓝海的“入海口”

几年前开始,TMT业界就发出了一类质疑的声音:移动互联网的各个APP彼此割裂,是在“孤岛炼油”。大量的应用程序和服务互不打通,形成了严重的数据孤岛,用户只能进行站内搜索,很难穿透APP壁垒,进行全局搜索。《淮南子·氾论训》中写道,“百川异源而皆归于海;百家殊业而皆务于治”。像千百条来自不同源头的江河,最后都会归流入大海

如何安装VMware Esxi 6.7.0(7.x版本同样适用)

1.什么是VMwareEsxi服务器?VMwareESXi是VMwarevSphere虚拟化平台中的裸机管理程序。作为用于创建和运行虚拟机(VM)的裸机管理程序,VMwareESXi在其上运行并直接访问硬件,无需安装操作系统。与其他类型的管理程序相比,这种对硬件的直接访问使其性能更好、运行速度更快且可扩展性更强。这使得

SAP FI之自动付款程序运行 F110

简介付款流程包括以下步骤输入发票分析未结发票的到期日准备应付发票付款被批准或修改发票已付款始终需要处理大量的发票。必须按时支付应付帐款发票才能获得可能的折扣。会计部门希望自动执行此发票处理。自动付款程序是一种可以帮助用户管理应付帐款的工具。SAP为用户提供了自动执行以下操作的选项:选择要付款或收款的未结(待处理)发票要

李宏毅-hw7-利用Bert完成QA

一、查漏补缺、熟能生巧:只有熬过不熟练的时期,反复琢磨,才会有熟练之后,藐视众生的时刻1.关于transformers中的tokenizer的用法的简单介绍:fromtransformersimportBertTokenizerFast#加载预训练的BERT模型tokenizertokenizer=BertTokeni

Linux 系统移植(一)-- 系统组成

参考资料:linux系统移植篇(一)——linux系统组成【野火Linux移植篇】1-uboot初识与编译/烧录步骤文章目录一、linux系统组成二、Uboot三、Linux内核四、设备树本篇为Linux系统移植系列的第一篇文章,介绍了一个完整可运行的Linux系统由哪些部分组成,每个部分的作用是什么。一、linux系

Linux内核源码分析 (B.2)深入理解 Linux 物理内存管理

Linux内核源码分析(B.2)深入理解Linux物理内存管理文章目录Linux内核源码分析(B.2)深入理解Linux物理内存管理@[TOC]1\.前文回顾2\.从CPU角度看物理内存模型2.1FLATMEM平坦内存模型2.2DISCONTIGMEM非连续内存模型2.3SPARSEMEM稀疏内存模型2.3.1物理内存

热文推荐