在之前的文章,栈长介绍了 Spring Boot Starters,
前段时间 Spring Boot 2.4.0 也发布了,本文栈长再详细总结下最新的 Spring Boot 2.4.0 官方的 Starters 都有哪些。
Spring Boot 基本介绍这里就不介绍了
Spring Boot starters
1、application starters
你还在手写配置引入框架?建议看看这个表格。
这一个表格是 Spring Boot 所有应用程序级的 Starters,一起来看都有哪些。
Starter 名称 | Starter 描述 |
---|---|
spring-boot-starter | 核心 Starter,包括自动配置、日志及 YAML 支持等 |
spring-boot-starter-activemq | 集成 Apache ActiveMQ,基于 JMS 的消息队列 |
spring-boot-starter-artemis | 集成 Apache Artemis,基于 JMS 的消息队列 |
spring-boot-starter-amqp | 集成 Spring AMQP 和 Rabbit MQ 的消息队列 |
spring-boot-starter-aop | 集成 Spring AOP 和 AspectJ 面向切面编程 |
spring-boot-starter-batch | 集成 Spring Batch(批处理) |
spring-boot-starter-cache | 集成 Spring Cache(缓存) |
spring-boot-starter-data-cassandra | 集成 Cassandra(分布式数据库) 和 Spring Data Cassandra |
spring-boot-starter-data-cassandra-reactive | 集成 Cassandra(分布式数据库) 和 Spring Data Cassandra Reactive |
spring-boot-starter-data-couchbase | 集成 Couchbase(文档型数据库) 和 Spring Data Couchbase |
spring-boot-starter-data-couchbase-reactive | 集成 Couchbase(文档型数据库) 和 Spring Data Couchbase Reactive |
spring-boot-starter-data-elasticsearch | 集成 Elasticsearch(搜索引擎)和 Spring Data Elasticsearch |
spring-boot-starter-data-solr | 集成 Apache Solr(搜索引擎)结合 Spring Data Solr |
spring-boot-starter-data-jdbc | 集成 Spring Data JDBC |
spring-boot-starter-data-jpa | 集成 Spring Data JPA 结合 Hibernate |
spring-boot-starter-data-ldap | 集成 Spring Data LDAP |
spring-boot-starter-data-mongodb | 集成 MongoDB(文档型数据库)和 Spring Data MongoDB |
spring-boot-starter-data-mongodb-reactive | 集成 MongoDB(文档型数据库)和 Spring Data MongoDB Reactive |
spring-boot-starter-data-neo4j | 集成 Neo4j(图形数据库)和 Spring Data Neo4j |
spring-boot-starter-data-r2dbc | 集成 Spring Data R2DBC |
spring-boot-starter-data-redis | 集成 Redis(内存数据库)结合 Spring Data Redis 和 Lettuce 客户端 |
spring-boot-starter-data-redis-reactive | 集成 Redis(内存数据库)结合 Spring Data Redis reactive 和 Lettuce 客户端 |
spring-boot-starter-data-rest | 集成 Spring Data REST 暴露 Spring Data repositories 输出 REST 资源 |
spring-boot-starter-thymeleaf | 集成 Thymeleaf 视图构建 MVC web 应用 |
spring-boot-starter-freemarker | 集成 FreeMarker 视图构建 MVC web 应用 |
spring-boot-starter-groovy-templates | 集成 Groovy 模板视图构建 MVC web 应用 |
spring-boot-starter-hateoas | 集成 Spring MVC 和 Spring HATEOAS 构建超媒体 RESTful Web 应用程序 |
spring-boot-starter-integration | 集成 Spring Integration |
spring-boot-starter-jdbc | 集成 JDBC 结合 HikariCP 连接池 |
spring-boot-starter-jersey | 集成 JAX-RS 和 Jersey 构建 RESTful web 应用,是 spring-boot-starter-web 的一个替代 Starter |
spring-boot-starter-jooq | 集成 jOOQ 访问 SQL 数据库,是 spring-boot-starter-data-jpa 或者 spring-boot-starter-jdbc 的替代 Starter |
spring-boot-starter-json | 用于读写 JSON |
spring-boot-starter-jta-atomikos | 集成 Atomikos 实现 JTA 事务 |
spring-boot-starter-jta-bitronix | 集成 Bitronix 实现 JTA 事务( 从 2.3.0 开始标识为 Deprecated) |
spring-boot-starter-mail | 集成 Java Mail 和 Spring 框架的邮件发送功能 |
spring-boot-starter-mustache | 集成 Mustache 视图构建 web 应用 |
spring-boot-starter-security | 集成 Spring Security |
spring-boot-starter-oauth2-client | 集成 Spring Security’s OAuth2/OpenID 连接客户端功能 |
spring-boot-starter-oauth2-resource-server | 集成 Spring Security’s OAuth2 资源服务器功能 |
spring-boot-starter-quartz | 集成 Quartz 任务调度 |
spring-boot-starter-rsocket | 构建 RSocket 客户端和服务端 |
spring-boot-starter-test | 集成 JUnit Jupiter, Hamcrest 和 Mockito 测试 Spring Boot 应用和类库 |
spring-boot-starter-validation | 集成 Java Bean Validation 结合 Hibernate Validator |
spring-boot-starter-web | 集成 Spring MVC 构建 RESTful web 应用,使用 Tomcat 作为默认内嵌容器 |
spring-boot-starter-web-services | 集成 Spring Web Services |
spring-boot-starter-webflux | 集成 Spring Reactive Web 构建 WebFlux 应用 |
spring-boot-starter-websocket | 集成 Spring WebSocket 构建 WebSocket 应用 |
用到哪个技术就引用哪个技术的 Starter,Spring Boot 助你快速集成,别再手写配置了。
2、production starters
除了上面的应用程序级 starters,还有下面的生产级 Starters 能被用于线上/生产功能:
Starter 名称 | Starter 描述 |
---|---|
spring-boot-starter-actuator | 集成 Spring Boot Actuator,提供生产功能以帮助监控和管理应用程序 |
这个意味着和任何技术、任何业务没关系,只要用了 Spring Boot 框架,上了生产环境就能使用,也不是只有生产才能使用,只是在生产环境使用更能体验它的意义。
3、technical starters
除了应用程序和生产 Starters,Spring Boot 还包括下面的技术类 Starters,用于帮助你排除或者替换指定的框架或技术:
Starter 名称 | Starter 描述 |
---|---|
spring-boot-starter-jetty | 集成 Jetty 作为内嵌的 servlet 容器,可用于替代 spring-boot-starter-tomcat |
spring-boot-starter-log4j2 | 集成 Log4j2 日志框架,可用于替代 spring-boot-starter-logging |
spring-boot-starter-logging | 集成 Logback 日志框架,这个也是默认的日志 Starter |
spring-boot-starter-reactor-netty | 集成 Netty 作为内嵌的响应式 HTTP 服务器 |
spring-boot-starter-tomcat | 集成 Tomcat 作为内嵌的 servlet 容器,这也是默认的 servlet 容器 starter 被集成 spring-boot-starter-web 里面 |
spring-boot-starter-undertow | 集成 Undertow 作为内嵌的 servlet 容器,可用于替代 spring-boot-starter-tomcat |
这个表格的技术也很熟悉了,Spring Boot 默认内嵌 Servlet 容器为 Tomcat,如果你想换成 Jetty、Undertow 或者其他容器,又或者你想换成其他的日志框架,都在这个表格里,怎么换?点击这里参考我之前写的这篇教程。
最新请参考:
https://docs.spring.io/spring-boot/docs/
结语
本文一共收集了 54 个 Spring Boot 官方的 Starter,参考来源于 Spring Boot 2.4.0,不限于这 54 个,随着 Spring Boot 版本的不断升级,后续可能会增加更多的 Starter,当然也有少数 Starter 可能会得到删除。
官方自带的可以直接拿来用,大家看看,就没有必要重复造轮子了。
如果 Spring Boot 官方没有自带的 Starter,一般第三方的框架也都会提供自制的 Spring Boot Starter,如:Dubbo、Zookeeper 等,这样只要几个依赖,几行配置参数就能轻松实现集成。
当然,除了第三方的 Starter,使用 Spring Boot 的公司一般也会有私有定制的 Starter,可以用于在公司内部各业务部门快速集成使用,而不用各自造轮子。
除了会使用 Spring Boot Starter,了解它的原理也非常有必要,因为你的上司随时都会让你写一个!
版权申明:本文系 "Java技术栈" 原创,原创实属不易,转载、引用本文内容请注明出处,禁止抄袭、洗稿,请自重,尊重他人劳动成果和知识产权。