java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > SpringBoot默认包扫描与默认配置文件

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

作者:后端漫漫

这篇文章主要给大家详细介绍了SpringBoot默认包扫描机制的原理和示例,以及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默认包扫描与默认配置文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文