SpringBoot默认包扫描机制与默认配置文件
文章目录
- 一、SpringBoot默认包扫描机制 - 示例
- 二、SpringBoot默认扫描包机制 - 原理
- 三、SpringBoot手动扫描包机制 - 原理&示例
- 四、@ComponentScan与@MapperScan
- 五、SpringBoot默认配置文件
一、SpringBoot默认包扫描机制 - 示例
默认情况下,扫描启动类同级及其子级包下的所有文件。我们可以通过以下的测试来验证一下。
1. 当BannerController放在启动类的,程序运行成功

2. 当BannerController移动到上一级目录,不在启动类的包及其子包下,程序运行失败

二、SpringBoot默认扫描包机制 - 原理
实际上SpringBoot启动类上面的@SpringBootApplication里面有一个@ComponentScan,它可以扫描启动类同级及其子级包下的所有文件,并且把带有@Component、@Repository、@Service、@Controller的类注册到Spring容器。
三、SpringBoot手动扫描包机制 - 原理&示例
正如上述所说的,SpringBoot默认扫描包机制是因为已经在@ComponentScan指定扫描启动类同级及其子级包下的所有文件,当我要被扫描的文件不在启动类同级及其子级包下,那么我们可以通过在启动类头上加上@ComponentScan()来指定我们要扫描的包。

四、@ComponentScan与@MapperScan
@Component、@Repository、@Service、@Controller、@ComponentScan是Spring注解
所以@ComponentScan只能扫描@Component、@Repository、@Service、@Controller
@Mapper、@MapperScan是Mybatis注解
所以@MapperScan只能扫描@Mapper

所以要是在Mapper层要是使用了@Mapper注解,那么SpringBoot的@ComponentScan是扫描不到的,必须在启动类上面加上@MapperScan扫描。

五、SpringBoot默认配置文件
当我们构建完Spring Boot项目后,会在resources目录下给我们一个默认的全局配置文件 application.properties,这是一个空文件,因为Spring Boot在底层已经把配置都给我们自动配置好了,当在配置文件进行配置时,会修改SpringBoot自动配置的默认值。
配置文件名是固定的
application.properties
但我们可以修改为
application.yml
这两个文件本质是一样的,区别只是其中的语法略微不同。
相关文章:
SpringBoot默认包扫描机制与默认配置文件
文章目录一、SpringBoot默认包扫描机制 - 示例二、SpringBoot默认扫描包机制 - 原理三、SpringBoot手动扫描包机制 - 原理&示例四、ComponentScan与MapperScan五、SpringBoot默认配置文件一、SpringBoot默认包扫描机制 - 示例 默认情况下,扫描启动类同级及其子…...
RabbitMq 消息可靠性问题(一) --- publisher发送时丢失
前言 消息从生产者发送到exchange, 再到 queue, 再到消费者。这个过程中有哪些有消息丢失的可能性呢? 发送时丢失: 生产者发送的消息未送达 exchange消息到达 exchange 后未到达 queue MQ 宕机,queue将消息丢失consumer 接收到消息后未消费…...
Java初识泛型
目录 一、包装类 1、基本数据类型和对应的包装类 2、装箱和拆箱 3、自动装箱和自动拆箱 二、什么是泛型 三、引出泛型 1、泛型的语法 四、泛型类的使用 1、语法 2、示例 3、类型推导(Type Inference) 六、泛型如何编译的 1、擦除机制 2、为什么不能实例化泛型类…...
寸照换底色技巧大全,超详细图文教程
在日常的设计工作中,我们常常需要将图片的背景色进行修改,以适应不同的场景和需求。其中最常用的方法就是寸照换底色技巧。本文将为大家介绍一些常见的寸照换底色技巧,并提供超详细的图文教程,帮助大家轻松完成这项任务。 一、使…...
这篇文章价值很大:股票历史分时成交数据怎么简单获取?【干货】
文章目录前言一、准备二、使用步骤1.引入库2,使用这个API查询历史分时数据:3.查询完整历史分时数据4.其他查询方法参数格式:[(市场代码, 股票代码), ...]参数:市场代码, 股票代码, 文件名, 起始位置, 数量参数:市场代码…...
muduo源码剖析--Buffer
Buffer类 Buffer类是自定义处理数据输入缓冲的类,底层是vector< char >,通过readIdx和writeIdx将缓冲区分为3个部分,第一部分是预留的8字节已经读出的缓冲区字节数、第二部分是还未读出的部分、第三部分是可写的部分。 Buffer类的设计…...
AI人工智能简介和其定义
全称:人工智能(Artificial Intelligence) 缩写:AI / ai 人工智能研究 亦称智械、机器智能,指由人制造出来的可以表现出智能的机器。通常人工智能是指通过普通计算机程序来呈现人类智能的技术。该词也指出研究这样的智…...
python数据清洗
数据清洗包括:空值,异常值,重复值,类型转换和数据整合这里数据清洗需要用到的库是pandas库,下载方式还是在终端运行 : pip install pandas.首先我们需要对数据进行读取import pandas as pddata pd.read_cs…...
Python3 os.makedirs() 方法、Python3 os.read() 方法
Python3 os.makedirs() 方法 概述 os.makedirs() 方法用于递归创建目录。像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录。 语法 makedirs()方法语法格式如下: os.makedirs(path, mode0o777)参数 path -- 需要递归创建的目录。 mode -- 权限…...
【Linux安装数据库】Ubuntu安装mysql并连接navicat
Linux系统部署Django项目 文章目录Linux系统部署Django项目一、mysql安装二、mysql配置文件三、新建数据库和用户四、nivacat链接mysql一、mysql安装 linux安装mysql数据库有很多教程,根据安装方式不同,相关的步骤也不同。可以参考:【Linux安…...
GaussDB工作级开发者认证—第一章GaussDB数据库介绍
一. GaussDB概述 GaussDB是华为基于openGauss自研生态推出的企业级分布式关系型数据库。具备企业级复杂事物混合负载能力,同时支持分布式事务强一致性,同城跨AZ部署,数据0丢失,支持1000的计算节点扩展能力,4PB海量存储…...
阿里张勇:所有行业都值得用大模型重新做一遍!
数据智能产业创新服务媒体——聚焦数智 改变商业“2023阿里云峰会”于4月11日在北京国际会议中心隆重召开,本次峰会以" 与实俱进 为创新提速!"为主题,阿里巴巴集团董事会主席兼首席执行官张勇、阿里云智能集团首席技术官周靖人、…...
ES6(字符串的扩展与新增方法)
字符串的扩展与新增方法 1. 模板字符串 模板字符串解决了之前的字符串拼接 ESC下那个键:反引号()包裹>替换引号 ${变量名/表达式/函数}>替换引引加加导致的代码冗余 //ES5(引引加加) $(#result).append(There are <b> basket.c…...
rk3568点亮LCD(lvds)
rk3568 Android11/12 适配 lvds 屏 LVDS(Low Voltage Differential Signal)即低电压差分信号。1994年由美国国家半导体(NS)公司为克服以TTL电平方式传输宽带高码率数据时功耗大、电磁干扰大等缺点而研制的一种数字视频信号传输方…...
全终端办公电子邮件集成方案
面临挑战 应用场景复杂,经常需要在不同终端进行切换,多屏、跨屏及移动办公要求高; 业务系统较多,需要同时支持多种业务的开展,对第三方应用集成及协同办公要求高; 对邮件系统的稳定及高效性要求高&#x…...
再不转型为ChatGPT程序员,有遭受降维打击的危险
Open AI在演示GPT-4的时候,有这么一个场景:给一个界面草图,就可以生成网页代码。这个演示非常简单,如果界面原型比较复杂呢?像这样:ChatGPT能不能直接生成HTML, CSS,JavaScript代码,把这个网页给…...
maven使用教程
文章目录IDEA创建maven项目maven项目必有得目录结构项目构建关键字cleanvalidatecompiletestpackageverifyinstallsitedeploy命令使用方法方法一 在terminal终端执行方法二 在右侧得maven中双击依赖管理在pom.xml下 导包、scope的传递范围、打包方式依赖冲突声明优先原则就近原…...
Emlog底部显示当前在线人数
第一步:在模板文件里面创建“visitor.php”的文件吧下面代码入进去 code <?php//首先你要有读写文件的权限,首次访问肯不显示,正常情况刷新即可$online_log "slzxrs.dat"; //保存人数的文件到根目录,$timeout 30;//30秒内没…...
【java踩坑搞起】MybatisPlus封装的mapper不支持 join,那咋办
众所周知,Mybatis Plus 封装的 mapper 不支持 join,如果需要支持就必须自己去实现。但是对于大部分的业务场景来说,都需要多表 join,要不然就没必要采用关系型数据库了。 直到前几天,偶然碰到了这么一款叫做mybatis-p…...
【创造者】——什么是数学
吉姆罗恩在不经意间这样说过,要么你主宰生活,要么你被生活主宰。这不禁令我深思. 既然如此, 康德说过一句著名的话,既然我已经踏上这条道路,那么,任何东西都不应妨碍我沿着这条路走下去。带着这句话, 我们还要更加慎重…...
DeOldify图像上色服务技术解析:其背后的卷积神经网络架构
DeOldify图像上色服务技术解析:其背后的卷积神经网络架构 老照片上色,听起来像是个魔法。你可能见过一些黑白照片瞬间变得色彩鲜艳的对比图,感觉既神奇又有点不可思议。DeOldify就是这样一个能把“魔法”变成现实的开源工具,它能…...
DeepSeek-OCR-2开发者案例:集成至RAG系统实现图文混合检索增强
DeepSeek-OCR-2开发者案例:集成至RAG系统实现图文混合检索增强 1. 项目背景与需求 最近在做一个智能文档问答系统,客户的需求很明确:他们有很多PDF文档,里面既有文字又有图片,用户提问时,系统要能同时理解…...
从零到一实战:基于快马平台快速开发企业级jiyutrainer在线评测系统
今天想和大家分享一个很实用的开发经验——如何快速搭建一个企业级的在线编程评测系统。最近正好有个朋友想做一个类似jiyutrainer的编程练习平台,我就用InsCode(快马)平台试了试,效果出乎意料的好。 项目需求分析 首先明确我们需要实现的核心功能&#…...
STC-50kg
【广州兰瑟★电子-杨工】提供的STC-50kg 是美国威世世铨(Vishay Celtron)旗下一款经典的 S 型拉压双向称重 / 测力传感器,量程 50 公斤 (50kgf / 490N)。 一、核心参数(标准型) 量程:50 kg (拉力 / 压力双向…...
分支限界法 vs 回溯法:5个关键区别和实际应用场景对比
分支限界法与回溯法:核心差异与工程实践指南 在解决复杂组合优化问题时,算法选择往往决定了程序的执行效率。当面对NP难问题时,两种经典算法——分支限界法和回溯法——常被开发者拿来比较。本文将深入剖析这两种算法的本质区别,并…...
手指划过屏幕放大模型界面,环氧树脂层和纤维基体在激光路径下呈现出清晰的物理场分布。突然发现这个双层材料烧蚀模型跑得格外顺畅——看来前几天通宵调参没白费
comsol激光清洗、烧蚀双层材料 表面一层50μm厚度的环氧树脂(可更换成其他材料),基体材料为纤维材料。 添加功率为13W的激光进行清洗或烧蚀 模型非常成功、角度选择很奈斯在COMSOL里建模时有个小细节特别关键:把环氧树脂层的厚度参数设为全局变量。别小看…...
[OS] 非阻塞键盘输入检测(kbhit)在实时交互应用中的实现与优化
1. 为什么需要非阻塞键盘输入检测? 想象一下你在玩一个简单的终端游戏,比如贪吃蛇。如果游戏在每次等待你按键时都暂停执行,直到你按下某个键才继续,那体验会有多糟糕?这就是阻塞式输入的问题——程序会卡在输入等待环…...
FastAPI流式响应性能断崖式下跌?3个隐藏内存泄漏点,资深工程师连夜修复的5行关键代码
第一章:FastAPI 2.0 异步 AI 流式响应 面试题汇总FastAPI 2.0 原生强化了对异步流式响应(StreamingResponse)的支持,尤其在大语言模型(LLM)推理、实时 token 生成、语音转文字等 AI 场景中成为高频考点。面…...
Phi-3-mini-128k-instruct辅助Dev-C++初学者:C/C++编译错误智能解读
Phi-3-mini-128k-instruct:你的Dev-C编程“陪练” 刚学C/C那会儿,你是不是也经常被Dev-C弹出的那一大串编译错误信息搞得一头雾水?什么“undefined reference”,什么“expected ‘;’ before ‘}’ token”,每个单词都…...
Fish Speech 1.5入门指南:无需Python基础,5步完成高质量语音生成
Fish Speech 1.5入门指南:无需Python基础,5步完成高质量语音生成 你是不是也遇到过这些烦恼?想给视频配音,但自己的声音不好听,找配音员又太贵;想制作有声书,但录制过程繁琐,效果还…...
