SpringBoot-自动配置

使用 SpringBoot 之后,让一个整合了 SpringMVC 的 WEB 工程开发变得非常简单,那些繁杂的配置都消失不见了,这是如何做到的?

查看 main 方法的启动类

注解:@SpringBootApplication,run 方法:SpringApplication.run()

@SpringBootApplication

查看@SpringBootApplication源码,如下图所示:

在源码当中有3个比较重点的注解, 我上图已经标记出来了

@SpringBootConfiguration

查看 @SpringBootConfiguration 源码

在这个注解上面,又有一个 @Configuration 注解,这个注解的作用就是声明当前类是一个 配置类,然后 Spring 会自动扫描到添加了 @Configuration 的类,读取其中的配置信息,而 @SpringBootConfiguration 是用来声明当前类是 SpringBoot 应用的配置类,项目中只能有一个。所以一般我们无需自己添加。

@EnableAutoConfiguration

开启自动配置,告诉 SpringBoot 基于所添加的依赖,去 猜测 你想要如何配置 Spring。比如我们引入了 spring-boot-starter-web,而这个启动器中帮我们添加了 tomcat、SpringMVC 的依赖, 此时自动配置就知道你是要开发一个 web 应用,所以就帮你完成了 web 及 SpringMVC 的默认配置了!SpringBoot 内部对大量的第三方库或 Spring 内部库进行了默认配置,这些配置是否生效,取决于我们是否引入了对应库所需的依赖,如果有那么默认配置就会生效,我们使用 SpringBoot 构建一个项目,只需要引入对应框架所需的依赖,配置就可以交给 SpringBoot 处理了。

@ComponentScan

配置组件扫描的指令,提供了类似与 <context:component-scan> 标签的作用,通过 basePackageClasses 或者 basePackages 属性来指定要扫描的包。如果没有指定这些属性,那么将从声明这个注解的类所在的包开始扫描包及子包。而我们的 @SpringBootApplication 注解声明的类就是 main 函数所在的启动类,因此扫描的包是该类所在包及其子包。因此,一般启动类会放在一个比较前的包目录中。

posted @   BNTang  阅读(848)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示