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默认包扫描与默认配置文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
详解Jenkins 实现Gitlab事件自动触发Jenkins构建及钉钉消息推送
这篇文章主要介绍了Jenkins 实现Gitlab事件自动触发Jenkins构建及钉钉消息推送,应该会对大家学习Jenkins有所启发2021-04-04
解析Spring RestTemplate必须搭配MultiValueMap的理由
本文给大家介绍Spring RestTemplate必须搭配MultiValueMap的理由,本文通过实例图文相结合给大家介绍的非常详细,需要的朋友参考下吧2021-11-11
Spring Boot 中PageHelper 插件使用配置思路详解
这篇文章主要介绍了Spring Boot 中PageHelper 插件使用配置及实现思路,通过引入myabtis和pagehelper依赖,在yml中配置mybatis扫描和实体类,具体实现方法跟随小编一起看看吧2021-08-08
Java 详解循环屏障CyclicBarrier如何实现多线程分段等待执行完成
CyclicBarrier是一个同步工具类,可以翻译成循环屏障,也叫障碍器或同步屏障。CyclicBarrier内部有一个计数器count,调用障碍器的await方法会使计数器count的值减一,当计数器count的值为0时,表明调用了await方法线程已经达到了设置的数量2021-11-11


最新评论