Skip to content

Spring Boot

Spring Boot 是基于 Spring Framework 的快速开发脚手架,遵循 "约定优于配置"(Convention over Configuration) 的设计理念。它并非替代 Spring,而是通过自动配置、起步依赖和内嵌服务器等机制,将 Spring 的技术整合复杂度从业务代码转移到基础设施层。

约定优于配置

Spring Boot 通过一套精心设计的默认约定,大幅减少手动配置工作量。例如:

  • 默认配置文件为 application.propertiesapplication.yml
  • 默认内嵌 Tomcat 服务器,端口 8080
  • 静态资源默认放在 static 目录,模板放在 templates 目录
  • 主类放在根包下,自动扫描同级及子包组件

自动配置(Auto-Configuration)

这是 Spring Boot 最具代表性的特性,能够根据项目依赖自动推断并配置所需 Bean。

实现机制

  • @SpringBootApplication 复合注解包含 @EnableAutoConfiguration,触发自动配置
  • 扫描类路径下 .m2\repository\org\springframework\boot\spring-boot\2.6.3\spring-boot-2.6.3.jar!\META-INF\spring.factories(Spring Boot 2.7+ 新机制,使用META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 替代旧版 spring.factories
  • 通过 @Conditional 系列注解(如 @ConditionalOnClass@ConditionalOnMissingBean@ConditionalOnProperty)进行条件化装配

内嵌服务器(Embedded Servers)

Spring Boot 将 Tomcat、Jetty、Undertow 等服务器作为库文件嵌入应用中,应用可打包为可执行的 Fat JAR,通过 java -jar 直接运行,无需外部部署 WAR 包。