SpringBoot默认包扫描机制与默认配置文件

这篇具有很好参考价值的文章主要介绍了SpringBoot默认包扫描机制与默认配置文件。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、SpringBoot默认包扫描机制 - 示例

默认情况下,扫描启动类同级及其子级包下的所有文件。我们可以通过以下的测试来验证一下。

1. 当BannerController放在启动类的,程序运行成功

SpringBoot默认包扫描机制与默认配置文件

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

SpringBoot默认包扫描机制与默认配置文件

二、SpringBoot默认扫描包机制 - 原理

实际上SpringBoot启动类上面的@SpringBootApplication里面有一个@ComponentScan,它可以扫描启动类同级及其子级包下的所有文件,并且把带有@Component@Repository@Service@Controller的类注册到Spring容器。

三、SpringBoot手动扫描包机制 - 原理&示例

正如上述所说的,SpringBoot默认扫描包机制是因为已经在@ComponentScan指定扫描启动类同级及其子级包下的所有文件,当我要被扫描的文件不在启动类同级及其子级包下,那么我们可以通过在启动类头上加上@ComponentScan()来指定我们要扫描的包。
SpringBoot默认包扫描机制与默认配置文件

四、@ComponentScan与@MapperScan

@Component@Repository@Service@Controller@ComponentScan是Spring注解
所以@ComponentScan只能扫描@Component、@Repository、@Service、@Controller

@Mapper@MapperScan是Mybatis注解
所以@MapperScan只能扫描@Mapper
SpringBoot默认包扫描机制与默认配置文件
所以要是在Mapper层要是使用了@Mapper注解,那么SpringBoot的@ComponentScan是扫描不到的,必须在启动类上面加上@MapperScan扫描。
SpringBoot默认包扫描机制与默认配置文件

五、SpringBoot默认配置文件

当我们构建完Spring Boot项目后,会在resources目录下给我们一个默认的全局配置文件 application.properties,这是一个空文件,因为Spring Boot在底层已经把配置都给我们自动配置好了,当在配置文件进行配置时,会修改SpringBoot自动配置的默认值。

配置文件名是固定的

application.properties

但我们可以修改为

application.yml

这两个文件本质是一样的,区别只是其中的语法略微不同。文章来源地址https://www.toymoban.com/news/detail-411515.html

到了这里,关于SpringBoot默认包扫描机制与默认配置文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot Starter机制 ——自动化配置

    目录 一、Starter机制 1.1 什么是 SpringBoot Starter 1.2 SpringBoot Starter 的作用 1.3 Starter的应用场景 二、案例 2.1 模拟短信发送模版 2.2 AOP实现日志切面模版         Spring Boot Starter是Spring Boot框架提供的一种便利机制,用于简化项目的依赖管理和配置。它是一组预定义的依赖项和

    2024年02月03日
    浏览(40)
  • Java --- springboot3依赖管理和自动配置机制

    目录 一、依赖管理机制 二、自动配置机制  三、自动配置流程 🚕 、为什么导入 starter-web 所有相关依赖都导入进来? ①、开发什么场景,导入什么 场景启动器。 ②、maven依赖传递原则。A-B-C: A就拥有B和C ③、导入 场景启动器。 场景启动器 自动把这个场景的所有核心依赖

    2024年02月07日
    浏览(54)
  • Ubuntu 服务器通过 resolvconf 管理配置系统默认DNS解析服务器配置文件

    1、首先安装 resolvconf 如果未安装 2、检查已启动并启用的解析服务 3、如果未启用服务,则可以通过以下方式启动和启用它:  4、现在编辑 resolv.conf.d/head 配置文件 5、将您的 DNS 地址添加到此文件中,例如我使用(223.5.5.5 和 223.6.6.6)  6、现在强制 resolvevconf 在使用 -u 调用时

    2024年02月11日
    浏览(46)
  • SpringBoot3自动配置流程 SPI机制 核心注解 自定义starter

    导入 starter 依赖导入 autoconfigure 寻找类路径下 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 文件 启动,加载所有 自动配置类 xxxAutoConfiguration 给容器中配置功能 组件 组件参数 绑定到 属性类 中。 xxxProperties 属性类 和 配置文件 前缀项绑定 @Contional 派生的条件

    2024年02月16日
    浏览(45)
  • springboot日志使用 SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    还是直接上代码 @Slf4j 这玩意 默认支持 不用引入 yml 配置文件 下面分享 xml 方式 在 资源目录下创建 logback-spring.xml 粘贴走 即可 重启 看控制台变化 还有磁盘 有没有写入 坑 : 我在创建的时候 发现 xml 没有生效 排查了半天 发现 在创建 logback-spring.xml 这个文件的时候 我不是手

    2024年04月22日
    浏览(74)
  • 【ubuntu22.04 文件管理器nautilus配置默认终端为alacritty】

    ubuntu默认的终端不能通过设置里的默认应用程序配置 nautilus是ubuntu自带的文件管理器,包管理器里面只有 nautilus-extension-gnome-terminal 而没有提供大多终端 update-alternatives 工具可以修改系统的默认终端( ctrl-alt-t ),但对nautilus文件管理器内失效 寄出神器nautilus-open-any-terminal,支持

    2024年02月09日
    浏览(58)
  • 禁用AMQP配置中的明文身份验证机制(包含Springboot结果测试+踩坑)

    最近公司内网部署RabbitMQ服务器,部署上测试后安全部门扫描到MQ服务器有一个漏洞【禁用AMQP配置中的明文身份验证机制】。本文记录解决该漏洞的过程和方法,以及遇到的问题 主要步骤为: 在服务器生成所需的两对密钥和CA证书,然后将CA、服务器公私钥放到Rabbit目录下并

    2024年02月14日
    浏览(34)
  • 23、springboot日志使用入门-- SLF4J+Logback 实现(springboot默认的日志实现),日志打印到控制台及日志输出到指定文件

    就是springboot的默认的日志依赖实现。创建项目的时候存在这个依赖里面。 下面的日志实现就是基于 SLF4J+Logback SLF4J+Logback:SLF4J是门面,Logback是实现 设置日志的级别,可通过以下方式: ▲ 改变Spring Boot的核心日志级别 ▲ 改变程序组件(包括所有各种框架)的核心日志级别

    2024年02月03日
    浏览(54)
  • 【vscode设置默认浏览器为google,配置默认浏览器没有google,VS Code 报Windows找不到文件‘chrome‘】

    VS Code 报Windows 找不到‘chrome’ 项目启动ctar+鼠标左键快捷打开并没有使用默认浏览器 并且自己去浏览器配置并提供完整的选项 网上有很多其他的答案不过对我都没有 最后解决是在google里配置 不是默认浏览器会有个按钮 点一下就跳转到系统配置默认浏览器中,选项就可以出

    2024年02月12日
    浏览(54)
  • SpringBoot 配置文件:什么时配置文件?配置文件能干什么?

    学习一个东西,我们先要知道它有什么用处。整个项目中所有重要的数据都在配置文件中配置,例如:数据库的连接信息、项目启动窗口、第三方系统调用密钥、日志等级…,如果没有配置信息,那么 SpringBoot 项目就无法连接数据库,不能保存关键日志,因此,在项目中,配

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包