当前位置: 首页 > news >正文

SpringBoot 基础之自动配置

SpringBoot 自动配置

SpringBoot 通过 自动配置 简化了大量的繁复的配置信息。

启动类 Application 中有两处特别之处:

  • 注解:@SpringBootApplication

  • run 方法:SpringApplication.run(…)

@SpringBootApplication 注解至少等价于以下三个注解:

  • @SpringBootConfiguration

    • 该是来声明当前类是 SpringBoot 应用的配置类, 一个项目中只能有一个

    • 因为该注解的存在,Spring 会再去「找」所有添加了 @Configuration 的类,做相应的操作。

  • @EnableAutoConfiguration

    • 该注解的作用是告诉 Spring Boot 基于 .pom 文件中添加的的 starter 依赖,进行自动配置。

    • 例如,我们引入了 spring-boot-starter-web,而这个启动器中帮我们添加了 tomcat、Spring MVC 的依赖。

    • SpringBoot 内部对大量的第三方库或 Spring 内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应 starter 。

  • @ComponentScan

    • 该注解提供了类似与 <context:component-scan> 标签的作用。

    • 通过 basePackageClasses 或者 basePackages 属性来指定要扫描的包。如果没有指定这些属性,那么将从声明这个注解的类所在的包开始,扫描包及子包。

    • 因此,启动类需要放在一个比较前/浅的包目录中

spring-boot-autoconfigure.jar 中的 org.springframework.boot.autoconfigure 包下包含了各种框架/库的默认配置。


由 Spring 负责提供的 用于快速整合 XXX 框架/组件的自动配置快速整合包,通常的命名规则是:spring-boot-starter-xxx 。例如:

  • spring-boot-starter-tomcat

  • spring-boot-starter-thymleaf

这种由 Spring 提供的自动配置快速整合的包,其版本信息在 spring-boot-parent 中已定义,(除非是真有需要,否则)不需要指定版本信息。

由 XXX 框架/组件方负责提供的用于与 Spring 快速整合的包, 通常的命名规则是: xxx-spring-boot-starter 。例如:

  • mybatis-spring-boot-starter

  • druid-spring-boot-starter

这种由 XXX 方提供的自动配置快速整合包,需要指定版本信息。

相关文章:

SpringBoot 基础之自动配置

SpringBoot 自动配置 SpringBoot 通过 自动配置 简化了大量的繁复的配置信息。 启动类 Application 中有两处特别之处&#xff1a; 注解&#xff1a;SpringBootApplication run 方法&#xff1a;SpringApplication.run(…) SpringBootApplication 注解至少等价于以下三个注…...

Oracle dblink 发现Network 等待事件的分析 enq: KO - fast object checkpoint

所有的sql 通过dblink 查询全部等待中&#xff0c; 同一个SQL 20多个session 在跑&#xff0c;等待事件network&#xff0c;可能怀疑是不是网络断开了&#xff0c;导致没有返回 执行sql 如下&#xff1a; BEGIN Xdblink ; END; 去到dblink 所在的db&#xff0c;发现20多个sql在…...

SpringMVC:向三大域对象存数据

1. 简介 Servlet中的三个域对象 请求域&#xff1a;request会话域&#xff1a;session应用域&#xff1a;application 主要是通过&#xff1a;setAttribute getAttribute方法来完成在域中数据的传递和共享。 点击跳转Servlet详细概念 // 向域中存储数据 void setAttribute(St…...

如何用python做一个用户登录界面——浔川python社

1 需解决的问题&#xff1a; 1.1如何用python做一个用户登录界面&#xff1f; 1.2需要用到哪些库、模块&#xff1f; 2 问题解决&#xff1a; 2.1 回答 1.1 &#xff1a;合理即可&#xff0c;无标准回答。 2.2 回答 1.2 &#xff1a;tk库&#xff08;缩写&#xff09;、GUL界面…...

Python知识点9---推导式

提前说一点&#xff1a;如果你是专注于Python开发&#xff0c;那么本系列知识点只是带你入个门再详细的开发点就要去看其他资料了&#xff0c;而如果你和作者一样只是操作其他技术的Python API那就足够了。 Python提供的推导式&#xff0c;只对列表、字典、集合三种数据类型生…...

用C++做一个跑酷游戏

要用C创建一个跑酷游戏是一个相对复杂的任务&#xff0c;因为它涉及到图形渲染、用户输入处理、物理模拟等多个方面。由于C本身并不直接支持图形渲染&#xff0c;我们通常需要使用一个图形库来帮助我们实现这一点。 一个常用的选择是使用SFML&#xff08;Simple and Fast Mult…...

基于字典树可视化 COCA20000 词汇

COCA20000 是美国当代语料库中最常见的 20000 个词汇&#xff0c;不过实际上有一些重复&#xff0c;去重之后大概是 17600 个&#xff0c;这些单词是很有用&#xff0c;如果能掌握这些单词&#xff0c;相信会对英语的能力有一个较大的提升。我很早就下载了这些单词&#xff0c;…...

TypeScript 中的命名空间

1. 命名空间的概念 命名空间是 TypeScript 提供的一种组织代码的方式&#xff0c;它类似于其他编程语言中的模块化系统&#xff0c;但有一些不同之处。命名空间可以包含变量、函数、类等&#xff0c;并且可以嵌套使用&#xff0c;从而更好地组织和管理代码。 2. 定义命名空间…...

[C++] 小游戏 斗破苍穹 2.2.1至2.11.5全部版本(上) zty出品

大家好,今天zty整合了斗破苍穹2.2.1到2.11.5的所有版本 我这么辛苦,就要50个赞吧 2.2.1 #include<stdio.h> #include<ctime> #include<time.h> //suiji #include<windows.h> //SLEEP函数 struct Player //玩家结构体,并初始化player { char name[…...

单元测试的心法分享

大家好&#xff0c;我是G探险者&#xff01; 今天我们简单聊聊单元测试的哪些事儿~ 两天时间我玩明白了单元测试的套路。 这里我分享一下思路。 在我眼里单元测试室什么&#xff1f; 请看这张草图&#xff1a; 单元测试主要关注单个代码单元&#xff08;通常是类或方法&am…...

【python】多线程(3)queue队列之不同延时时长的参数调用问题

链接1&#xff1a;【python】多线程&#xff08;笔记&#xff09;&#xff08;1&#xff09; 链接2&#xff1a;【python】多线程&#xff08;笔记&#xff09;&#xff08;2&#xff09;Queue队列 0.问题描述 两个线程&#xff0c;但是不同延时时长&#xff0c;导致数据输出…...

Java开发常见基础问题

Java开发的多个方面&#xff0c;包括但不限于Java基础知识、多线程并发、JVM、框架使用、数据库、设计模式、网络编程等。 以下是一些常见的问题以及回答的方向&#xff1a; Java 开发技术常见问题&#xff08;一&#xff09; Java 基础知识 对象和类的区别是什么&#xff1…...

大数据组件doc

1.flink Apache Flink Documentation | Apache Flink 2.kafka Apache Kafka 3.hbase Apache HBase ™ Reference Guide 4.zookeeper ZooKeeper: Because Coordinating Distributed Systems is a Zoo 5.spark Overview - Spark 3.5.1 Documentation 6.idea组件&#xff08;…...

Docker Hub 国内镜像源配置

Docker Hub 国内镜像源配置 Docker Hub 国内镜像源是指在国内境内提供 Docker 镜像服务的镜像源。由于国际网络带宽等问题&#xff0c;国内用户下载 Docker 镜像通常速度较慢。因此&#xff0c;为了解决这个问题&#xff0c;一些国内的公司和组织提供了 Docker 镜像的国内镜像…...

持续总结中!2024年面试必问 20 道 Kafka面试题(一)

一、Kafka 的基础概念有哪些&#xff1f; Kafka 是一个分布式流处理平台&#xff0c;由 LinkedIn 开发&#xff0c;并于 2011 年成为 Apache 软件基金会的一部分。以下是 Kafka 的一些基础概念&#xff1a; Broker: Kafka 集群由多个 Broker 组成&#xff0c;每个 Broker 存储…...

Linux共享内存创建和删除

最近项目中使用到了共享内存记录下 创建共享内存: 删除共享内存: 代码: #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/mman.h> #include <sys/stat.h> #include <u…...

微信小程序如何自定义tabbar

微信小程序自定义底部tabbar是一个提升用户体验和增加小程序个性化的重要功能。以下是自定义底部tabbar的步骤&#xff0c;以供参考&#xff1a; 一、自定义tabbar的重要性 微信小程序默认的底部导航栏&#xff08;tabbar&#xff09;样式和布局是固定的&#xff0c;开发者无…...

【并发程序设计】15.信号灯(信号量)

15.信号灯(信号量) Linux中的信号灯即信号量是一种用于进程间同步或互斥的机制&#xff0c;它主要用于控制对共享资源的访问。 在Linux系统中&#xff0c;信号灯作为一种进程间通信&#xff08;IPC&#xff09;的方式&#xff0c;与其他如管道、FIFO或共享内存等IPC方式不同&…...

【操作与配置】VS2017与MFC环境配置

【操作与配置】VS2017与MFC环境配置 概述 Visual Studio 是一款强大且多功能的集成开发环境&#xff08;IDE&#xff09;&#xff0c;适用于软件开发人员和团队。使用此应用程序&#xff0c;您可以构建和调试现代Web应用程序&#xff0c;并利用扩展帮助探索几乎任何编程语言。…...

遥感影像信息提取

刘老师&#xff08;副教授&#xff09;&#xff0c;来自双一流重点高校&#xff0c;长期从事GIS/RS/3S技术及其生态环境领域中的应用等方面的研究和教学工作&#xff0c;并参与GIS的二次开发&#xff0c;发表多篇sci论文&#xff0c;具有资深的技术底蕴和专业背景。 专题一&am…...

OpCore-Simplify:黑苹果配置的终极简化方案——从复杂到简单的革命性转变

OpCore-Simplify&#xff1a;黑苹果配置的终极简化方案——从复杂到简单的革命性转变 【免费下载链接】OpCore-Simplify A tool designed to simplify the creation of OpenCore EFI 项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify 你是否曾经因为黑…...

重新定义AI助手体验:突破Cursor Pro限制的5个技术方案

重新定义AI助手体验&#xff1a;突破Cursor Pro限制的5个技术方案 【免费下载链接】cursor-free-vip [Support 0.45]&#xff08;Multi Language 多语言&#xff09;自动注册 Cursor Ai &#xff0c;自动重置机器ID &#xff0c; 免费升级使用Pro 功能: Youve reached your tri…...

GodotPckTool 终极指南:如何在命令行中高效管理Godot游戏资源包

GodotPckTool 终极指南&#xff1a;如何在命令行中高效管理Godot游戏资源包 【免费下载链接】GodotPckTool Standalone tool for extracting and creating Godot .pck files 项目地址: https://gitcode.com/gh_mirrors/go/GodotPckTool 你是否曾经需要在不启动Godot引擎…...

Z-Image-Turbo-辉夜巫女惊艳效果:神社鸟居背景+巫女舞动姿态动态构图

Z-Image-Turbo-辉夜巫女惊艳效果&#xff1a;神社鸟居背景巫女舞动姿态动态构图 想看看AI如何将“辉夜巫女”的古典神秘与神社鸟居的庄严宁静完美融合&#xff0c;并赋予其灵动的舞姿吗&#xff1f;今天&#xff0c;我们就来深度体验一个名为“Z-Image-Turbo-辉夜巫女”的专属…...

清北博雅考研集训营:沉浸式封闭备考,为考研人铺就上岸之路

考研的赛道上&#xff0c;从来都不缺努力的人&#xff0c;缺的是科学的规划、优质的师资和沉浸式的备考环境。清北博雅教育集团深耕考研辅导领域十余载&#xff0c;凭借专业的教学体系、大咖级师资团队、完善的教学服务和亮眼的上岸成果&#xff0c;打造了专属考研人的集训营备…...

在模具设计领域,结构受压变形分析就像给钢铁骨架做“压力测试“。COMSOL的稳态研究模块能快速完成这类强度验证,但实际操作中有几个魔鬼细节需要特别注意

用comsol软件进行结构的受压变形分析&#xff0c;计算结构受压时应力分布及应变情况&#xff0c;预测模具的强度是否符合要求。 模型采用装配体&#xff0c;可以使用稳态研究&#xff0c;加快计算速度&#xff0c;在各零件接触的面设置接触对&#xff0c;对顶针施加位移&#x…...

厦门选117E还是120E?手把手教你为你的城市选择正确的高斯克吕格投影坐标系

厦门GIS项目实战&#xff1a;如何精准选择高斯克吕格投影坐标系 第一次在ArcGIS里看到上百个坐标系选项时&#xff0c;我的鼠标指针在列表上方徘徊了整整十五分钟——就像站在自动售货机前不知道按哪个按钮的新手。特别是当项目 deadline 临近&#xff0c;而厦门市规划局的Shap…...

Linux网络命名空间实战:5分钟搞定veth pair跨命名空间通信

Linux网络命名空间实战&#xff1a;5分钟搭建隔离通信环境 在云计算和容器化技术蓬勃发展的今天&#xff0c;Linux网络命名空间已经成为系统管理员和开发者的必备技能。想象一下&#xff0c;当你需要在单台物理机上同时运行多个需要独立网络环境的服务时&#xff0c;传统方式可…...

告别msi2lmp参数缺失!手把手教你用Perl脚本insight2lammps搞定MS到LAMMPS的data文件转换

告别msi2lmp参数缺失&#xff01;手把手教你用Perl脚本insight2lammps搞定MS到LAMMPS的data文件转换 分子动力学模拟研究者们常常遇到这样的困境&#xff1a;在Materials Studio&#xff08;MS&#xff09;中精心构建的模型&#xff0c;导出后却因LAMMPS自带的msi2lmp工具参数缺…...

DOL-CHS-MODS:开源工具助力游戏体验一键优化

DOL-CHS-MODS&#xff1a;开源工具助力游戏体验一键优化 【免费下载链接】DOL-CHS-MODS Degrees of Lewdity 整合 项目地址: https://gitcode.com/gh_mirrors/do/DOL-CHS-MODS 您是否在为游戏汉化过程中的繁琐配置而头疼&#xff1f;是否曾因美化补丁安装不当导致游戏崩…...