SpringBoot启动器有哪些

ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏并订阅专栏;同时不要吝啬您的花花

SpringBoot启动器(Starter)是一套依赖整合+自动配置的封装组件,无需手动管理繁杂依赖版本,引入即可快速启用对应功能,大幅降低项目搭建成本。启动器主要分为官方核心启动器、官方场景启动器、第三方生态启动器、自定义启动器四大类,以下是详细分类及常用款详解。

一、官方核心启动器(基础必备,无业务场景)

这类启动器是SpringBoot项目的根基,不绑定具体业务,仅提供框架核心能力,所有SpringBoot项目几乎都会引入。

  • spring-boot-starter:核心基础启动器,集成Spring核心容器、自动配置机制、日志框架(默认Logback)、YAML配置解析等基础能力,是所有场景启动器的底层依赖。
  • spring-boot-starter-test:测试专用启动器,整合JUnit 5、Hamcrest、Mockito、TestRestTemplate等测试工具,支持单元测试、集成测试、Mock测试,适配SpringBoot全场景测试。
  • spring-boot-starter-logging:日志启动器,默认封装Logback日志框架,支持日志分级、文件输出、控制台打印,可快速替换为Log4j2等其他日志组件。

二、官方场景启动器(业务专用,按功能分类)

这类启动器针对具体业务场景封装,引入后无需手动配置,开箱即用,是日常开发最常用的启动器,按功能细分如下:

2.1 Web开发类

  • spring-boot-starter-web:Web开发核心启动器,集成Spring MVC、嵌入式Tomcat、Jackson(JSON序列化/反序列化)、Servlet API,用于开发RESTful接口、Web页面、后端服务,是最常用的场景启动器。
  • spring-boot-starter-webflux:响应式Web开发启动器,基于Reactor框架,支持异步非阻塞编程,适配高并发、低延迟场景(如网关、实时数据服务)。
  • spring-boot-starter-thymeleaf:模板引擎启动器,集成Thymeleaf视图模板,用于开发服务端渲染的Web页面,适配传统MVC项目。
  • spring-boot-starter-freemarker:FreeMarker模板引擎启动器,替代Thymeleaf,适合轻量化页面渲染场景。

2.2 数据访问与持久化类

  • spring-boot-starter-jdbc:JDBC基础启动器,集成Spring JDBC、默认HikariCP连接池,简化原生JDBC操作,适合轻量级数据库交互。
  • spring-boot-starter-data-jpa:JPA持久化启动器,集成Hibernate、Spring Data JPA,提供自动化CRUD、分页、排序能力,无需编写SQL即可操作关系型数据库。
  • spring-boot-starter-data-redis:Redis缓存启动器,集成Redis客户端、RedisTemplate/StringRedisTemplate,支持缓存、分布式锁、会话共享等场景。
  • spring-boot-starter-data-mongodb:MongoDB启动器,适配非关系型MongoDB数据库,支持文档型数据操作。
  • spring-boot-starter-data-elasticsearch:Elasticsearch启动器,集成ES客户端,用于全文检索、日志分析、大数据查询场景。
  • spring-boot-starter-jdbc:基础JDBC操作,配合MyBatis等框架使用;spring-boot-starter-data-solr:Solr搜索引擎启动器,替代ES做全文检索。

2.3 消息队列与异步类

  • spring-boot-starter-amqp:AMQP协议启动器,集成RabbitMQ,支持异步消息通信、解耦业务模块。
  • spring-boot-starter-activemq:ActiveMQ消息队列启动器,适配JMS规范的消息中间件。
  • spring-boot-starter-kafka:Kafka消息队列启动器,集成Apache Kafka,适合高吞吐量、日志收集、流处理场景。

2.4 安全与权限类

  • spring-boot-starter-security:安全认证启动器,集成Spring Security,实现用户登录、权限控制、CSRF防护、会话管理,支持JWT、OAuth2扩展。
  • spring-boot-starter-oauth2-client:OAuth2客户端启动器,支持微信、支付宝、GitHub等第三方登录。
  • spring-boot-starter-oauth2-resource-server:OAuth2资源服务器启动器,用于搭建受保护的API接口。

2.5 监控与运维类

  • spring-boot-starter-actuator:应用监控启动器,提供健康检查、 metrics指标、日志查看、环境配置查询等运维接口,配合Prometheus、Grafana实现可视化监控。
  • spring-boot-starter-admin-client:SpringBoot Admin客户端,对接Admin服务端,实现应用集中管理、状态监控。

2.6 其他通用场景类

  • spring-boot-starter-aop:面向切面编程启动器,集成Spring AOP、AspectJ,支持日志切面、权限切面、事务切面等通用功能。
  • spring-boot-starter-quartz:定时任务启动器,集成Quartz框架,实现分布式定时任务、 cron表达式调度。
  • spring-boot-starter-mail:邮件发送启动器,简化SMTP邮件配置,支持文本、附件、HTML邮件发送。
  • spring-boot-starter-validation:参数校验启动器,集成Hibernate Validator,实现接口参数非空、格式、长度等自动化校验。

三、第三方生态启动器(社区/厂商封装)

官方未原生支持的组件,由第三方厂商/社区封装启动器,命名规则一般为xxx-spring-boot-starter,常用款如下:

  • mybatis-spring-boot-starter:MyBatis持久层启动器,替代JPA,适合灵活编写SQL的场景;mybatis-plus-boot-starter:MyBatis-Plus启动器,增强MyBatis功能,提供通用CRUD、分页插件。
  • druid-spring-boot-starter:Druid连接池启动器,替代默认HikariCP,支持监控、防SQL注入、连接池管控。
  • knife4j-spring-boot-starter:接口文档启动器,增强Swagger功能,可视化管理API接口。
  • redisson-spring-boot-starter:Redisson启动器,基于Redis实现分布式锁、分布式队列、限流等功能。
  • xxl-job-spring-boot-starter:分布式定时任务启动器,替代Quartz,支持可视化调度、任务告警。

四、自定义启动器(业务专属封装)

针对企业内部通用组件(如日志SDK、权限SDK、数据库路由),可自行封装启动器,遵循SpringBoot自动配置规范,实现内部组件的开箱即用,统一管理依赖和配置,提升团队开发效率。

核心选型小贴士:日常Web项目优先引入spring-boot-starter-webspring-boot-starter-test;数据操作根据数据库类型选JPA/MyBatis/Redis;监控运维必加spring-boot-starter-actuator;第三方组件直接用对应封装的starter即可,无需手动整合依赖。

ps:如果这篇帖子对于还在找工作和找实习的你有所帮助,可以关注我,给本贴点赞、评论、收藏并订阅专栏;同时不要吝啬您的花花

Spring 文章被收录于专栏

本专栏聚焦Spring全生态体系,从IoC/AOP核心原理入手,覆盖Spring Boot自动配置、事务管理、Web开发等实战内容。拆解循环依赖、动态代理等高频面试难点,助力开发者从入门到精通,打通单体到微服务的技术链路,解决企业级开发痛点,提升架构设计与问题排查能力,成为Java后端进阶的必备技术专栏。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务