官方Spring Boot starters整理

Spring Boot starters

Spring Boot 的功能组件(例如 spring-boot-starter-actuator、 spring-boot-starter-data-redis 等)的步骤非常简单,用著名的把大象放冰箱的方法来概括的话,有以下三步就可以完成组件功能的使用:

STEP 1

在 pom 文件中引入对应的包,例如:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

STEP 2

在应用配置文件中加入相应的配置,配置都是组件约定好的,需要查看官方文档或者相关说明。有些比较复杂的组件,对应的参数和规则也相应的较多,有点可能多大几十上百了。

STEP 3

以上两步都正常的情况下,我们就可以使用组件提供的相关接口来开发业务功能了。下面我整理了官方提供的starter.我们来看一看.

1、application starters

应用程序级的 Starters

<table>
<thead>
<tr>
<th>Starter 名称</th>
<th>Starter 描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>spring-boot-starter</td>
<td>核心 Starter,包括自动配置、日志及 YAML 支持等</td>
</tr>
<tr>
<td>spring-boot-starter-activemq</td>
<td>集成 Apache ActiveMQ,基于 JMS 的消息队列</td>
</tr>
<tr>
<td>spring-boot-starter-artemis</td>
<td>集成 Apache Artemis,基于 JMS 的消息队列</td>
</tr>
<tr>
<td>spring-boot-starter-amqp</td>
<td>集成 Spring AMQP 和 Rabbit MQ 的消息队列</td>
</tr>
<tr>
<td>spring-boot-starter-aop</td>
<td>集成 Spring AOP 和 AspectJ 面向切面编程</td>
</tr>
<tr>
<td>spring-boot-starter-batch</td>
<td>集成 Spring Batch(批处理)</td>
</tr>
<tr>
<td>spring-boot-starter-cache</td>
<td>集成 Spring Cache(缓存)</td>
</tr>
<tr>
<td>spring-boot-starter-data-cassandra</td>
<td>集成 Cassandra(分布式数据库) 和 Spring Data Cassandra</td>
</tr>
<tr>
<td>spring-boot-starter-data-cassandra-reactive</td>
<td>集成 Cassandra(分布式数据库) 和 Spring Data Cassandra Reactive</td>
</tr>
<tr>
<td>spring-boot-starter-data-couchbase</td>
<td>集成 Couchbase(文档型数据库) 和 Spring Data Couchbase</td>
</tr>
<tr>
<td>spring-boot-starter-data-couchbase-reactive</td>
<td>集成 Couchbase(文档型数据库) 和 Spring Data Couchbase Reactive</td>
</tr>
<tr>
<td>spring-boot-starter-data-elasticsearch</td>
<td>集成 Elasticsearch(搜索引擎)和 Spring Data Elasticsearch</td>
</tr>
<tr>
<td>spring-boot-starter-data-solr</td>
<td>集成 Apache Solr(搜索引擎)结合 Spring Data Solr</td>
</tr>
<tr>
<td>spring-boot-starter-data-jdbc</td>
<td>集成 Spring Data JDBC</td>
</tr>
<tr>
<td>spring-boot-starter-data-jpa</td>
<td>集成 Spring Data JPA 结合 Hibernate</td>
</tr>
<tr>
<td>spring-boot-starter-data-ldap</td>
<td>集成 Spring Data LDAP</td>
</tr>
<tr>
<td>spring-boot-starter-data-mongodb</td>
<td>集成 MongoDB(文档型数据库)和 Spring Data MongoDB</td>
</tr>
<tr>
<td>spring-boot-starter-data-mongodb-reactive</td>
<td>集成 MongoDB(文档型数据库)和 Spring Data MongoDB Reactive</td>
</tr>
<tr>
<td>spring-boot-starter-data-neo4j</td>
<td>集成 Neo4j(图形数据库)和 Spring Data Neo4j</td>
</tr>
<tr>
<td>spring-boot-starter-data-r2dbc</td>
<td>集成 Spring Data R2DBC</td>
</tr>
<tr>
<td>spring-boot-starter-data-redis</td>
<td>集成 Redis(内存数据库)结合 Spring Data Redis 和 Lettuce 客户端</td>
</tr>
<tr>
<td>spring-boot-starter-data-redis-reactive</td>
<td>集成 Redis(内存数据库)结合 Spring Data Redis reactive 和 Lettuce 客户端</td>
</tr>
<tr>
<td>spring-boot-starter-data-rest</td>
<td>集成 Spring Data REST 暴露 Spring Data repositories 输出 REST 资源</td>
</tr>
<tr>
<td>spring-boot-starter-thymeleaf</td>
<td>集成 Thymeleaf 视图构建 MVC web 应用</td>
</tr>
<tr>
<td>spring-boot-starter-freemarker</td>
<td>集成 FreeMarker 视图构建 MVC web 应用</td>
</tr>
<tr>
<td>spring-boot-starter-groovy-templates</td>
<td>集成 Groovy 模板视图构建 MVC web 应用</td>
</tr>
<tr>
<td>spring-boot-starter-hateoas</td>
<td>集成 Spring MVC 和 Spring HATEOAS 构建超媒体 RESTful Web 应用程序</td>
</tr>
<tr>
<td>spring-boot-starter-integration</td>
<td>集成 Spring Integration</td>
</tr>
<tr>
<td>spring-boot-starter-jdbc</td>
<td>集成 JDBC 结合 HikariCP 连接池</td>
</tr>
<tr>
<td>spring-boot-starter-jersey</td>
<td>集成 JAX-RS 和 Jersey 构建 RESTful web 应用,是 spring-boot-starter-web 的一个替代 Starter</td>
</tr>
<tr>
<td>spring-boot-starter-jooq</td>
<td>集成 jOOQ 访问 SQL 数据库,是 spring-boot-starter-data-jpa 或者 spring-boot-starter-jdbc 的替代 Starter</td>
</tr>
<tr>
<td>spring-boot-starter-json</td>
<td>用于读写 JSON</td>
</tr>
<tr>
<td>spring-boot-starter-jta-atomikos</td>
<td>集成 Atomikos 实现 JTA 事务</td>
</tr>
<tr>
<td>spring-boot-starter-jta-bitronix</td>
<td>集成 Bitronix 实现 JTA 事务( 从 2.3.0 开始标识为 <strong>Deprecated</strong>)</td>
</tr>
<tr>
<td>spring-boot-starter-mail</td>
<td>集成 Java Mail 和 Spring 框架的邮件发送功能</td>
</tr>
<tr>
<td>spring-boot-starter-mustache</td>
<td>集成 Mustache 视图构建 web 应用</td>
</tr>
<tr>
<td>spring-boot-starter-security</td>
<td>集成 Spring Security</td>
</tr>
<tr>
<td>spring-boot-starter-oauth2-client</td>
<td>集成 Spring Security’s OAuth2/OpenID 连接客户端功能</td>
</tr>
<tr>
<td>spring-boot-starter-oauth2-resource-server</td>
<td>集成 Spring Security’s OAuth2 资源服务器功能</td>
</tr>
<tr>
<td>spring-boot-starter-quartz</td>
<td>集成 Quartz 任务调度</td>
</tr>
<tr>
<td>spring-boot-starter-rsocket</td>
<td>构建 RSocket 客户端和服务端</td>
</tr>
<tr>
<td>spring-boot-starter-test</td>
<td>集成 JUnit Jupiter, Hamcrest 和 Mockito 测试 Spring Boot 应用和类库</td>
</tr>
<tr>
<td>spring-boot-starter-validation</td>
<td>集成 Java Bean Validation 结合 Hibernate Validator</td>
</tr>
<tr>
<td>spring-boot-starter-web</td>
<td>集成 Spring MVC 构建 RESTful web 应用,使用 Tomcat 作为默认内嵌容器</td>
</tr>
<tr>
<td>spring-boot-starter-web-services</td>
<td>集成 Spring Web Services</td>
</tr>
<tr>
<td>spring-boot-starter-webflux</td>
<td>集成 Spring Reactive Web 构建 WebFlux 应用</td>
</tr>
<tr>
<td>spring-boot-starter-websocket</td>
<td>集成 Spring WebSocket 构建 WebSocket 应用</td>
</tr>
</tbody>
</table>

用到哪个技术就引用哪个技术的 Starter,Spring Boot 助你快速集成,别再手写配置了。

2、production starters

除了上面的应用程序级 starters,还有下面的生产级 Starters 能被用于线上/生产功能:

<table>
<thead>
<tr>
<th>Starter 名称</th>
<th>Starter 描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>spring-boot-starter-actuator</td>
<td>集成 Spring Boot Actuator,提供生产功能以帮助监控和管理应用程序</td>
</tr>
</tbody>
</table>

这个意味着和任何技术、任何业务没关系,只要用了 Spring Boot 框架,上了生产环境就能使用,也不是只有生产才能使用,只是在生产环境使用更能体验它的意义。

3、technical starters

除了应用程序和生产 Starters,Spring Boot 还包括下面的技术类 Starters,用于帮助你排除或者替换指定的框架或技术:

<table>
<thead>
<tr>
<th>Starter 名称</th>
<th>Starter 描述</th>
</tr>
</thead>
<tbody>
<tr>
<td>spring-boot-starter-jetty</td>
<td>集成 Jetty 作为内嵌的 servlet 容器,可用于替代 spring-boot-starter-tomcat</td>
</tr>
<tr>
<td>spring-boot-starter-log4j2</td>
<td>集成 Log4j2 日志框架,可用于替代 spring-boot-starter-logging</td>
</tr>
<tr>
<td>spring-boot-starter-logging</td>
<td>集成 Logback 日志框架,这个也是默认的日志 Starter</td>
</tr>
<tr>
<td>spring-boot-starter-reactor-netty</td>
<td>集成 Netty 作为内嵌的响应式 HTTP 服务器</td>
</tr>
<tr>
<td>spring-boot-starter-tomcat</td>
<td>集成 Tomcat 作为内嵌的 servlet 容器,这也是默认的 servlet 容器 starter 被集成 spring-boot-starter-web 里面</td>
</tr>
<tr>
<td>spring-boot-starter-undertow</td>
<td>集成 Undertow 作为内嵌的 servlet 容器,可用于替代 spring-boot-starter-tomcat</td>
</tr>
</tbody>
</table>

最新请参考:

link

结语

随着 Spring Boot 版本的不断升级,后续可能会增加更多的 Starter,当然也有少数 Starter 可能会得到删除。

当然,除了第三方的 Starter,使用 Spring Boot 的公司一般也会有私有定制的 Starter,可以用于在公司内部各业务部门快速集成使用,而不用各自造轮子。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容