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

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

这两个文件本质是一样的,区别只是其中的语法略微不同。

http://www.lryc.cn/news/58889.html

相关文章:

  • RabbitMq 消息可靠性问题(一) --- publisher发送时丢失
  • Java初识泛型
  • 寸照换底色技巧大全,超详细图文教程
  • 这篇文章价值很大:股票历史分时成交数据怎么简单获取?【干货】
  • muduo源码剖析--Buffer
  • AI人工智能简介和其定义
  • python数据清洗
  • Python3 os.makedirs() 方法、Python3 os.read() 方法
  • 【Linux安装数据库】Ubuntu安装mysql并连接navicat
  • GaussDB工作级开发者认证—第一章GaussDB数据库介绍
  • 阿里张勇:所有行业都值得用大模型重新做一遍!
  • ES6(字符串的扩展与新增方法)
  • rk3568点亮LCD(lvds)
  • 全终端办公电子邮件集成方案
  • 再不转型为ChatGPT程序员,有遭受降维打击的危险
  • maven使用教程
  • Emlog底部显示当前在线人数
  • 【java踩坑搞起】MybatisPlus封装的mapper不支持 join,那咋办
  • 【创造者】——什么是数学
  • ROS系列——错误syntax error near unexpected token `$‘do\r‘‘
  • 当星辰天合 SDS 遇见 Elastic
  • 使用vue实现分页
  • 白银实时行情操作中的一些错误及其解决办法(下)
  • Linux系统之tomcat的安装方法
  • 段式回文。
  • 易点易动设备管理系统高效管理海量备品备件
  • CMMI 3.0 究竟包含了哪些实践域?
  • 算法训练Day31: 455.分发饼干 376. 摆动序列 53. 最大子序和
  • ASP.NET(AJAX+JSON)实现对象调用
  • 一次弄懂gzip模块启用和配置指令