springboot自动配置原理面试题(自用)

news2024/11/30 10:52:05

springboot自动装配主要是基于注解编程和约定大于配置的思想设计

核心步骤:

1 组件必须包含@configuration并声明为@bean注解返回注入到IOC容器中

2 第三方jar包,根据/meta-inf/目录下增加spring.factories文件加载配置文件中的内容

3 springboot获取到第三方jar包后,通过ImportSelector接口来完成动态加载

这样大幅减少了大量臃肿的配置文件,各模块之间的依赖也实现了深度解耦,比如说我们创建spring中web应用程序时要引入非常多的maven依赖,而springboot只需要引入一个spring-boot-start-web来创建web应用程序,并且springboot把我们常用的依赖都放在了一起,所以我们只需要引入spring-boot-start-web就能完成一个简单的web程序

1步骤:通常情况下,通过@Configuration@Bean 注解自动配置的是自己自定义配置类

比如WebMvcConfigure的配置更改

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;

@Configuration
@EnableWebMvc
public class CustomWebMvcConfig implements WebMvcConfigurer {

    @Bean
    public CustomViewResolver customViewResolver() {
        // 配置自定义视图解析器
        return new CustomViewResolver();
    }

    // 可以在这里添加其他自定义配置,如拦截器等
}

3步骤主要是第三方,也就是springboot自带的很多jar包

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

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

相关文章

游戏开发这么久没见过github-lfs-居然不能下载图片的,这就让你见到了解决方法

以前很少见到github上有游戏的整体仓库,还觉得是游戏人都不爱分享 git 是很好的分布式代码管理,但对于大部分的“”云资源“”管理,git的很多原生功能并不擅长 现在想想,其实也合理,基本只要是手游换皮游戏&#xff…

注释的两难之道:程序员的反思

文章目录 代码即注释?注释的艺术1. 注释要言简意赅2. 注释的时机3. 注释内容4. 避免无意义的注释5. 维护注释 如何看待注释? 🎉欢迎来到Java学习路线专栏~注释的两难之道:程序员的反思 ☆* o(≧▽≦)o *☆嗨~我是IT陈寒&#x1f3…

JDBC批量插入数据

PreparedStatement的一些好处 1.PreparedStatement可以防止SQL注入 2.PreparedStatement可以操作Blob数据,Statement做不到. 3.PreparedStatement可以实现更高效的批量操作 演示PreparedStatement批量操作 在数据库操作中 update,delete后面如果没有条件,本身就可以就可以…

基于html5开发的Win12网页版,抢先体验

据 MSPoweruser 报道,Windows 11虽然刚刚开始步入正轨,但最新爆料称微软已经在开启下一个计划,Windows 12 的开发将在 去年3 月份开始。德国科技网站 Deskmodder.de 称,根据内部消息,微软将在 2022年3 月开始开发 Wind…

02_单片机及开发板介绍

单片机简介 单片机,又称为微控制器(Microcontroller),是一种集成了微处理器核心、存储器、输入/输出接口及各种功能模块的集成电路芯片。它通常由中央处理器(CPU)、存储器、输入/输出接口以及各种外设组成&…

HDLbits: Fsm serial

根据题意设计了四个状态,写出代码如下: module top_module(input clk,input in,input reset, // Synchronous resetoutput done ); parameter IDLE 3b000, START 3b001, DATA 3b010, STOP 3b100, bit_counter_end 4d7;reg [2:0] state,next_sta…

关于TCP协议面试中常见的一千个问题

TCP传输层控制协议 TCP是面向连接的、可靠的、基于字节流的传输层通信协议。 TCP 头部格式 1、 源端口和目的端口字段——各占 2 字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。 2、 序号字段——占 4 字节。TCP 连接中传送的数据流中…

诊断DLL——Vector模板生成Send2Key.dll

文章目录 前言一、Vector诊断控制台Secutity Access基本原理二、Seed2Key DLL生成GenerateKeyEx源码自定义安全算法源码CAPL调用27服务解密算法前言 在实际诊断工程应用中,如UDS刷写——27服务,经常会遇到一些Seed2Key的算法问题,为了安全保密,这个算法的源码不便公开,我…

【C++基础】10. 指针

文章目录 【 1. 指针的定义 】【 2. 指针的调用 】【 3. NULL 空指针 】【 4. 指针的算术运算 】4.1 指针的递加4.2 指针的递减4.3 指针的比较 【 5. 指针与数组 】5.1 通过指针操作数组5.2 指针数组、数组指针 【 6. 指向指针的指针(多级间接寻址)】【 7. 传递指针给函数 】【…

【Vue面试题二十七】、你了解axios的原理吗?有看过它的源码吗?

文章底部有个人公众号:热爱技术的小郑。主要分享开发知识、学习资料、毕业设计指导等。有兴趣的可以关注一下。为何分享? 踩过的坑没必要让别人在再踩,自己复盘也能加深记忆。利己利人、所谓双赢。 面试官:说下你的vue项目的目录结…

第三章 内存管理 四、连续分配管理方式

目录 一、内存空间的分配与回收 1、连续分配管理方式 (1)、单一连续分配 优点: 缺点: (2)、固定分区分配 分区大小相等: 分区大小不等: (3)、动态分区…

leetcode17.04面试题:消失的数字

数组nums包含从0到n的所有整数,但其中缺了一个。请编写代码找出那个缺失的整数。你有办法在O(n)时间内完成吗? 思路1:暴力枚举 定义一个[0~n]的数组与所给数组nums进行循环遍历,如果不相等则返回那个数。 int missingNumber(int…

Git 安装和配置教程:Windows / Mac / Linux 三平台详细图文教程,带你一次性搞定 Git 环境

Git是一款免费、开源的分布式版本控制系统,广泛应用于软件开发领域。随着开源和云计算的发展,Git已经成为了开发者必备的工具之一。本文将为大家介绍Git在Windows、Mac和Linux三个平台上的安装和配置方法,带你一次性搞定Git环境 Windows平台 …

windows计划任务的配置文件

界面操作 创建计划 依次设置 命令行操作 SCHTASKS 命令简介 SCHTASKS 命令是由微软公司开发并内置于 Windows 系统中的一个命令行工具。该命令可用于设置、修改、查询和删除计划任务,或启动计划任务中所定义的程序或脚本。 SCHTASKS 命令的基本语法 SCHTASKS 命…

【算法|动态规划No.20】leetcode416. 分割等和子集

个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…

38_Nginx 启动流程

文章目录 src/core/nginx.cint ngx_cdecl main(int argc, char *const *argv) {ngx_buf_t *b;

CSS基础详细解析(附带综合小练习)

目标:掌握 CSS 属性基本写法,能够使用文字相关属性美化文章页。 01-CSS初体验 层叠样式表 (Cascading Style Sheets,缩写为 CSS),是一种 样式表 语言,用来描述 HTML 文档的呈现(美化内容&#…

JVM之class文件结构剖析

文章目录 0.前言1. 引言1.1 Java编译原理基础1.2 Class文件在Java编译过程中的角色 2. Class文件的整体结构2.1 Class 文件组成 3. Class文件的详细解析3.1 魔数与版本号的作用和意义3.2 常量池的结构和作用3.3 访问标志的含义和可能的值3.4 类索引、父类索引和接口索引集合的作…

如何在小程序中设置页面显示的文字

不同商家,对于小程序有不同的要求。所以,小程序应该支持商家在后台灵活配置小程序各个页面的文字显示。下面具体介绍如何显示各个页面的文字。 朋友圈分享图文字:会显示在朋友圈海报顶部 升级会员提示:对于普通会员,在…

一些基础知识

一些基础知识笔记Git clone gitxxxxx pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple wget google.com 可以快速看你的服务器到底有没有链接代理 benchmark和baseline L1 loss & MSE loss L1是差的绝对值和,MSE是差的平方和 …