Spring Boot 基础入门

详细讲解请看SpringBoot入门,这里做概念的梳理和总结

1. 什么是 Spring Boot?

Spring Boot 不是一个新框架,而是对 Spring 的封装和增强。它的目标是简化 Spring 应用的初始搭建和开发过程。

传统 Spring 开发需要大量 XML 或 Java 配置,依赖管理复杂,部署时需打成 WAR 包放到外部 Tomcat。而微服务架构下,每个服务独立部署,这种模式变得笨重。

Spring Boot 提出 “应用即服务器” 的理念:把 Web 服务器(如 Tomcat)内嵌到应用中,打包成可执行 JAR,直接通过 java -jar 启动,极大简化了部署流程。


2. 核心机制

自动配置(Auto-configuration)

自动配置是 Spring Boot 的核心。它基于 “约定大于配置” 的思想,减少手动配置。

启动时,@SpringBootApplication 注解会触发 @EnableAutoConfiguration,加载 META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports 中列出的自动配置类。

这些配置类通过 @ConditionalOnClass@ConditionalOnMissingBean 等条件注解判断是否生效。例如:只有 classpath 中存在 DataSource 类,数据源自动配置才会加载。

配置值通过 @ConfigurationPropertiesapplication.ymlapplication.properties 中绑定。
重要原则:用户自定义 Bean 优先。若容器中已存在同类型的 Bean,自动配置会自动跳过。

示例配置:

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/test

起步依赖(Starter)

Starter 是 Spring Boot 提供的依赖描述符,命名格式为 spring-boot-starter-*,例如 spring-boot-starter-web

它不是技术实现,而是一组 经过版本协调的依赖集合。引入一个 Starter,就等于引入了某个功能所需的全部依赖(如 Web Starter 包含 Spring MVC、内嵌 Tomcat、Jackson 等),避免手动管理版本冲突。

本质是:标准换结构 + 依赖聚合 + 可执行部署单元


内嵌 Web 服务器

Spring Boot 默认内嵌 Tomcat,也可切换为 Jetty 或 Undertow。

应用不再需要部署到外部容器,而是自身就是一个独立进程。这使得:

  • 开发调试更简单(直接运行 main 方法)
  • 微服务部署更灵活(每个服务独立启停)
  • 更契合云原生(容器化、弹性伸缩)

外部化配置

配置文件支持 application.propertiesapplication.yml 两种格式。YAML 因其层次清晰、可读性强,在项目中更常用。

支持多环境配置,如:

  • application-dev.yml(开发环境)
  • application-prod.yml(生产环境)

通过 spring.profiles.active=dev 激活对应配置。

配置来源有多个层级(命令行参数 > 环境变量 > 配置文件等),Spring Boot 会按优先级合并。


3. 项目结构惯例

  • 主启动类使用 @SpringBootApplication,建议放在根包(如 com.example.demo),以便组件扫描。
  • 配置文件位于 src/main/resources
  • 测试类使用 @SpringBootTest 启动完整上下文。

总结

Spring Boot 并没有改变 Spring 的本质(IoC、AOP、事务等),而是通过 自动配置 + Starter 依赖 + 内嵌服务器 + 外部化配置,将开发者从繁琐的样板代码和部署流程中解放出来。

最终目标:专注业务逻辑,快速交付可靠应用

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐