交流
商城
MCN
登入
注册
首页
提问
分享
讨论
建议
公告
动态
发表新帖
发表新帖
第7 章:@SpringBootApplication
分享
未结
0
838
李延
LV6
2021-05-22
悬赏:20积分
# 作用 我们在启动springboot项目时,都需要在主函数的类上添加一个SpringBootApplication注解,下面我们具体解析这个注解都作了什么事情 # SpringBootApplication 在 SpringBootApplication注解上面一共有3个注解 - SpringBootConfiguration - EnableAutoConfiguration - ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class), @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) }) 其中ComponentScan作用就是扫描组件。在ClassPathBeanDefinitionScanner章节中,我们知道springboot会扫描这个注解指定路径下的class文件,并筛选出我们需要的class。 而我们看到默认设置了excludeFilters的属性,用于排除我们不需要的class。具体解析见@SpringBootApplication的ComponentScan文章 # SpringBootConfiguration 我们继续跟进SpringBootConfiguration注解。在这个注解上只有一个@SpringBootConfiguration注解。 在ConfigurationClassPostProcessor文章中,我们知道在最开始spring需要扫描的class文件时,就是根据这个逐渐来判断的。 # EnableAutoConfiguration 使spring具有自动装配的能力,我们知道springboot在导入相关的jar包后就会自动加载相关内容。比如导入aop包就回自动加载aop。导入jpa包,就是自动加载jpa的内容。而这些内容就是在这个注解中实现的。 在EnableAutoConfiguration上有如下注解: - @AutoConfigurationPackage - @Import(AutoConfigurationImportSelector.class) 我看到有一个Import,而里面的AutoConfigurationImportSelector是ImportSelector的子类,所以在扫描bean时会执行selectImports方法,我们在相关文章中详细说明 ## AutoConfigurationPackage 在AutoConfigurationPackage上有注解: - @Import(AutoConfigurationPackages.Registrar.class) 与上面相同,也是Import注解 我们在AutoConfigurationPackages.Registrar文章中说明
回帖
消灭零回复
提交回复
热议榜
java 相关知识分享
8
好的程序员与不好的程序员
6
写给工程师的十条精进原则
5
spring boot以jar包运行配置的logback日志文件没生成
5
一步一步分析SpringBoot启动源码(一)
5
MockMvc测试
5
【吐槽向】是不是有个吐槽的板块比较好玩
4
logstash jdbc同步mysql多表数据到elasticsearch
3
IntelliJ IDEA 优质License Server
3
.gitignore忽略规则
3
SpringBoot启动源码分析
3
一步一步分析SpringBoot启动源码(三)
3
2
一步一步分析SpringBoot启动源码(二)
2
积分不够将无法发表新帖
2
官方产品
Meta-Boot - 基于MCN
MCN - 快速构建SpringBoot应用
微信扫码关注公众号