Spring面试题--SpringBoot自动配置原理

news2024/11/25 11:28:52

注解解析 

 面试回答

面试官:Springboot自动配置原理

候选人: 嗯,好的,它是这样的。 在Spring Boot项目中的引导类上有一个注解@SpringBootApplication,这个 注解是对三个注解进行了封装,分别是: @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan

其中 @EnableAutoConfiguration 是实现自动化配置的核心注解。 该注解通过 @Import 注解导入对应的配置选择器。关键的是内部就是读取了 该项目和该项目引用的Jar包的的classpath路径下METAINF/spring.factories文件中的所配置的类的全类名。

在这些配置类中所定义的Bean会根据条件注解所指定的条件来决定是否需要 将其导入到Spring容器中。 一般条件判断会有像 @ConditionalOnClass 这样的注解,判断是否有对应的 class文件,如果有则加载该类,把这个配置类的所有的Bean放入spring容器 中使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

手写Spring底层原理

一.创建maven项目 二.创建对应的文件夹,分别是spring和nickel 说明:spring文件夹用于存放spring相关的文件,nickel用于存放相应的配置文件和相关被spring加载的bean对象。 三.创建对对应的文件 3.1创建CommponentScan注解文件 package com…

网工内推 | 国内知名云服务商,IE证书优先,最高18k*15薪

01 UCloud 招聘岗位:网络工程师 职责描述: 1、负责UCloud全球骨干网或数据中心网络工作,包括设备技术选型、架构运营方案设计、日常运维支持; 2、持续提升网络稳定性与性能。 任职要求: 1、本科及以上学历&#xff…

Vue中使用 file-saver 实现导出excel文件

1、先下载一波 file-saver yarn add file-saver 2、封装导出-接口的请求 需要修改请求的数据类型 responsetype 的值为 blob responsetype 默认值是 json 可省略不写 // 导出excel export function exportExcel() {return http({url: /sys/user/export,responseType: b…

TOPSIS法

优劣解距离法:评价类模型,有准确的评判标准后得到评分。 构造计算评分的公式: (x-min)/(max-min) 或(x-min)/((max-x)(x-min)) 指标类型 极大型指标:越大越好。 极小型指标:越小越好。 中间性指标:既…

JavaWeb实现学生管理系统

JavaWeb实现学生管理系统 一、项目介绍二、项目结构三、前期准备1.配置maven环境,在pom.xml配置文件中配置项目所依赖的jar包2.在MySql数据库中,创建登录注册表login和学生信息表student(1)登录注册表login(2&#xff…

【C++】继承 | 基类和派生类对象赋值转换 | 派生类的默认成员函数 | 菱形继承

目录 1.继承的概念及定义 1.1继承的概念 1.2 继承定义 1.2.1定义格式 1.2.2继承关系和访问限定符 1.2.3继承基类成员访问方式的变化 2.基类和派生类对象赋值转换 3.继承中的作用域 4.派生类的默认成员函数 5.继承与友元 6. 继承与静态成员 7. 菱形继承 1.继承的概念…

【InsCode Stable Diffusion美图活动一期】——海边跳舞的少女

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

window平台下MSVC2015编译Libyuv静态库 动态库

window平台下MSVC2015编译Libyuv静态库 动态库 编译步骤一、环境准备1.1 下载libyuv源码1.2 下载安装cmake:1.3 安装MobaXterm(终端工具) 二、编译生成静态,动态库2.1 cmake编译生成Visual Studio工程2.2 使用Visual Studio打开YU…

怎么从视频中提取音频?分享三个方法给大家!

如何从视频中提取音频?当我们观看视频时,经常会听到很好听的音乐,或者希望下载视频课程的音频以便随时学习。有时候,某些音频可能没有单独的音源或无法下载。那么,有什么方法可以将视频中的音频提取出来呢?…

第五章:Mask R-CNN网络详解

(目标检测篇)系列文章目录 第一章:R-CNN网络详解 第二章:Fast R-CNN网络详解 第三章:Faster R-CNN网络详解 第四章:SSD网络详解 第五章:Mask R-CNN网络详解 第六章:YOLO v1网络详解 第七章:YOLO v2网络详解 第八章:YOLO v3网络详解 文章目录 系列文章目录技…

Openlayers实战:自定义放大缩小,显示zoom等级

Openlayers地图中,默认的zoom组件是在左上角,这个组件很重要,方便大家来操控地图。在实际项目中,大家往往要改写这个组件,通常会放置到右下角,方便鼠标操作。 在我们的实战课程里,自定义了放大缩小,并增加了显示zoom等级的功能,实际的项目中往往都是这样办理的。 效果…

4、CCesium鼠标点击事件

在地图中添加鼠标点击事件,与web端cesium基本类似,我们使用上一个的示例,在上一个的示例中进行修改。 1、建一个类Handler,类中又个静态函数mouseUp,函数只在控制台输出信息 2、声明变量handler,并创建Scr…

java环境配置为1.8jdk为什么cmd java -version查看版本是17或者11

1、查看你的环境变量中Path的配置,确认%java_home%/bin在path值的第一个。 2、在cmd中输入echo %path%,看一下实际有效的path值是什么,其中的java配置对不对 3、oracle也自带一个jdk,如果你在配置环境变量时,将jdk配在…

m4a格式怎么转换成mp3,这几个方法分享给大家!

m4a是一种音频格式,它与mp3格式有一些区别。据说m4a是AAC的扩展名之一,它是Apple对MP3的回应,主要用于Mac环境下的压缩音频格式。随着iTunes Store的兴起,m4a在通过在线音乐商店购买音乐方面变得非常流行。然而,尽管许…

正则表达式测试(一)

一、匹配上1,2,3 三种字符串 测试地址:访问 二、匹配上1,2,3 三种字符串 三、匹配上1,2,3 三种字符串 四、匹配上第一个字符串 五、反向引用 反向引用还可以将通用资源指示符 (URI) 分解为其组件 举例:将下面的 URI 分解为协议(ftp、http 等…

Stable Diffusion 图生图-蒙版重绘,Controlnet未生效的一个场景

首先感谢秋叶大佬的整合包!!! 致敬所有在为AI绘画付出努力的大佬!!! 省流:绘图时禁用插件sd-webui-segment-anything 场景:在电商换装场景下,为图中角色换衣服,使用了2个…

力扣 -- 198. 打家劫舍

题目链接:198. 打家劫舍 - 力扣(LeetCode) 在看这道题之前可以先看看按摩师的博文,写的细节更详细。(4条消息) 力扣 -- 面试题 17.16. 按摩师_高比拜仁0824的博客-CSDN博客 下面是用动态规划的思想解决这道题的过程&#xff0c…

MySQL:数据库的基本操作及数据库的三大数据类型

目录 一、创建数据库 二、删除数据库 三、查询数据 四、在数据库使用Linux命令 五、数据库的编码方式以及校验规则 1、查看MySQL支持的所有编码方式 2、查看某一种编码方式支持的所有校验规则 3、查看所有的编码方式和校验规则 4、查看本地数据库使用的编码方式和校验规…

-Xss / -XX:ThreadStackSize

-Xss / -XX:ThreadStackSize指定线程最大栈空间jdk1.4里默认的栈大小是256KBjdk1.5里默认的栈大小为1M这个参数直接会影响创建线程数量,值越小创建线程数越多; (估算jvm进程的最大线程数)这个参数直接决定了函数可调用的最大深度&…

【Docker】完整的搭建和发布过程

【Docker】完整的搭建和发布过程 【一】shell和ftp工具选择【二】安装Docker【1】查看系统的内核版本【2】yum更新到最新版本【3】安装Docker所需的依赖包【4】设置Docker的yum的源【5】查看仓库所有Docker版本【6】安装Docker【7】启动Docker并添加开机自启动【8】查看Docker版…