选型

Spring Boot

你可能会说

Java 项目光配置就一堆 XML,为什么现在都说 Spring Boot?

把 Spring 生态打包成「能直接跑」的 Java 后端框架内嵌 Web 服务器,依赖用 starter 一次引入,默认配置开箱即用,打成一个 jar 就能运行。它没有削弱 Spring 的能力,只是把装配和配置自动化了。
也常被叫作SpringBootSpring
先问一句Java 后端从哪起?
默认Spring Boot→擅长一个 jar 起服务→别用只要一个脚本
成熟度采用

什么时候选它

  • 用 Java / Kotlin 写 HTTP API、后台服务
  • 团队已有 Spring 积累,招聘和排错都容易
  • 需要成熟生态:安全、数据访问、消息、监控一应俱全
  • 单体服务,或微服务里的单个服务

什么时候别选

  • 只是一个脚本或定时任务,引入整套框架偏重
  • 追求极冷启动、极低内存(原生镜像可缓解,但要评估)
  • 团队完全不会 Java——学习成本在语言和生态,不在框架
容易混在一起 · 怎么分
Spring Boot≠Spring

Spring 是核心容器与生态,Boot 是自动配置 + 内嵌服务器 + starter 的「开箱版」。

Spring Boot≠Spring Cloud

Boot 解决「一个服务怎么跑」,Cloud 解决「很多服务怎么协作」。

starter≠全部能力

引了 web starter 不等于要用它所有能力,按需引入即可。

Q面试会问什么

  • 问:自动配置的原理?
    答:@SpringBootApplication 里的 @EnableAutoConfiguration 读取依赖中的自动配置清单,再按条件注解(如 @ConditionalOnClass)决定装配哪些 Bean。
  • 问:starter 是什么?
    答:一组依赖加自动配置的组合,引入即获得某类能力,比如 web、jpa、redis。
  • 问:内嵌服务器怎么工作?
    答:启动时创建 Tomcat / Netty 等容器并注册路由,打成可执行 jar 后直接 java -jar。
延伸阅读 · 权威出处