锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. 软件开发
  3. JAVA
  4. Spring Boot starter(启动器)

Spring Boot starter(启动器)

0
  • JAVA
  • 发布于 2024-08-14
  • 0 次阅读
黄健
黄健

本文由 简悦 SimpRead 转码, 原文地址 blog.csdn.net

一、Spring Boot 启动器简介

        Spring Boot 启动器是一组方便的依赖项描述符,可以在 pom 中引入其依赖,免去了自己需要引用很多依赖类,并且 SpringBoot 会自动进行类的自动配置。

        SpringBoot 提供了两个 Runner 启动器——CommandLineRunner、ApplicationRunner 接口,可以在接口的 run 方法中实现初始化操作。

        Starters 可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。

        Spring Boot 的启动过程可以分为两个核心步骤:初始化 SpringApplication 对象和执行该对象的 run 方法。

        Spring Boot 将所有的功能场景都抽取出来,做成一个个的 starters(启动器),只需要在项目里面引入这些 starter,相关场景的所有依赖都会导入进来。要用什么功能就导入什么场景的启动器。比如我们要创建一个 web 项目,使用 Spring 的朋友都知道,在使用 Spring 的时候,需要在 pom 文件中添加多个依赖,而 Spring Boot 则会帮助开发着快速启动一个 web 容器,在 Spring Boot 中,我们只需要在 pom 文件中添加如下一个 starter-web 依赖即可。

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

        我们点击进入该依赖后可以看到,Spring Boot 这个 starter-web 已经包含了多个依赖,包括之前在 Spring 工程中需要导入的依赖,如下:   

<dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
      <version>3.2.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-json</artifactId>
      <version>3.2.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <version>3.2.3</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>6.1.4</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>6.1.4</version>
      <scope>compile</scope>
    </dependency>
  </dependencies>

        由此可以看出,Spring Boot 大大简化了我们的编码,我们不用一个个导入依赖,直接一个依赖即可。

二、Spring Boot 提供的启动器(starter)

        下面是 SpringBoot 所提供的一些启动器。

2.1、Spring Boot 应用程序启动器

名字描述

spring-boot-starter

核心启动器,包括自动配置支持、日志记录和 YAML

spring-boot-starter-activemq

使用 Apache ActiveMQ 的 JMS 消息传递入门

spring-boot-starter-amqp

使用 Spring AMQP 和 Rabbit MQ 的入门级

spring-boot-starter-aop

使用 Spring AOP 和 AspectJ 进行面向方面的编程的入门级

spring-boot-starter-artemis

使用 Apache Artemis 的 JMS 消息传递入门

spring-boot-starter-batch

使用 Spring Batch 的入门

spring-boot-starter-cache

使用 Spring Framework 缓存支持的入门级

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-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 MVC 在 REST 上公开 Spring Data 存储库的 Starter

spring-boot-starter-freemarker

使用 FreeMarker 视图构建 MVC Web 应用程序的入门级

spring-boot-starter-graphql

使用 Spring GraphQL 构建 GraphQL 应用程序的入门级

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 的替代方案

spring-boot-starter-jooq

使用 jOOQ 通过 JDBC 访问 SQL 数据库的入门级。spring-boot-starter-data-jpa 或 spring-boot-starter-jdbc 的替代方案

spring-boot-starter-json

读取和写入 json 的入门

spring-boot-starter-mail

使用 Java Mail 和 Spring Framework 的电子邮件发送支持的入门级

spring-boot-starter-mustache

使用 Mustache 视图构建 Web 应用程序的入门级

spring-boot-starter-oauth2-authorization-server

使用 Spring 授权服务器功能的入门级

spring-boot-starter-oauth2-client

使用 Spring Security 的 OAuth2/OpenID Connect 客户端功能的入门级

spring-boot-starter-oauth2-resource-server

使用 Spring Security 的 OAuth2 资源服务器功能的入门级

spring-boot-starter-pulsar

将 Spring 用于 Apache Pulsar 的入门级

spring-boot-starter-pulsar-reactive

将 Spring 用于 Apache Pulsar Reactive 的入门级

spring-boot-starter-quartz

使用 Quartz 调度程序的入门

spring-boot-starter-rsocket

用于构建 RSocket 客户端和服务器的入门级

spring-boot-starter-security

使用 Spring Security 的入门级

spring-boot-starter-test

使用包括 JUnit Jupiter、Hamcrest 和 Mockito 在内的库测试 Spring Boot 应用程序的入门程序

spring-boot-starter-thymeleaf

使用 Thymeleaf 视图构建 MVC Web 应用程序的入门级

spring-boot-starter-validation

将 Java Bean Validation 与 Hibernate Validator 配合使用的入门级

spring-boot-starter-web

使用 Spring MVC 构建 Web 应用程序(包括 RESTful)的入门级应用程序。使用 Tomcat 作为默认的嵌入容器

spring-boot-starter-web-services

使用 Spring Web 服务的入门级

spring-boot-starter-webflux

使用 Spring Framework 的 Reactive Web 支持构建 WebFlux 应用程序的入门级

spring-boot-starter-websocket

使用 Spring Framework 的 MVC WebSocket 支持构建 WebSocket 应用程序的入门级

2.2、Spring Boot 生产启动器

        除了应用程序启动器之外,以下启动器还可用于添加_生产就绪_功能:

名字描述

spring-boot-starter-actuator

使用 Spring Boot 的 Actuator 的入门级,它提供生产就绪功能来帮助您监控和管理您的应用程序

2.3、Spring Boot 技术入门启动器 

      最后,Spring Boot 还包括以下启动器,如果要排除或交换特定的技术方面,可以使用这些启动器:

名字描述

spring-boot-starter-jetty

使用 Jetty 作为嵌入式 servlet 容器的入门器。spring-boot-starter-tomcat 的替代品

spring-boot-starter-log4j2

使用 Log4j2 进行日志记录的入门级。spring-boot-starter-loggingspring-boot-starter-logging 的替代方案

spring-boot-starter-logging

使用 Logback 进行日志记录的入门级。默认日志记录启动器

spring-boot-starter-reactor-netty

使用 Reactor Netty 作为嵌入式响应式 HTTP 服务器的入门。

spring-boot-starter-tomcat

使用 Tomcat 作为嵌入式 servlet 容器的入门。spring-boot-starter-web 使用的默认 servlet 容器启动器

spring-boot-starter-undertow

使用 Undertow 作为嵌入式 servlet 容器的入门。spring-boot-starter-tomcat 的替代品

三、自定义 Spring Boot 启动器 

       有时候,springboot 官方提供的场景启动器 (starter) 并不能很好的满足我们的需求,这时候,我们可以考虑自行编写场景启动器,然后在 common 模块引入即可。 启动器包了一层自动配置类,自动配置类作用就是写 @Bean 注解,往容器里面配置 Bean,然后 Bean 所需要的属性都来源于配置文件所映射的属性配置类。 springboot 是按照这个模式开发启动器的,所以我们也这样操作,在需要的项目中引入启动器即可。

3.1、命名规约

  • spring 官方:spring-boot-starter-xxx

  • 自定义:xxx-spring–boot-starter

        Spring Boot 官方的启动器都是以 spring-boot-starter- _命名的,_代表了一个特定的应用类型。第三方的启动器不能以 spring-boot 开头命名,它们都被 Spring Boot 官方保留。第三方启动器通常以项目名称开头。 例如,名为第三方入门项目通常被命名为 :springbootthirdproject-spring-boot-starter 。​ ​ ​

标签: #软件开发 1171 #JAVA 991
相关文章

Spring 实现 3 种异步接口 2024-10-18 09:07

大家好,我是苏三~ 如何处理比较耗时的接口? 这题我熟,直接上异步接口,使用 Callable、WebAsyncTask 和 DeferredResult、CompletableFuture等均可实现。 但这些方法有局限性,处理结果仅返回单个值。在某些场景下,如果需要接口异步处理的同时,还持续不断地

重学SpringBoot3-集成Redis(五)之布隆过滤器 2024-10-08 11:24

更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(五)之布隆过滤器 1. 什么是布隆过滤器? * 基本概念 适用场景 2. 使用 Redis 实现布隆过滤器 * 项目依赖 Redis 配置

SpringBoot整合异步任务执行 2024-10-08 11:24

同步任务: 同步任务是在单线程中按顺序执行,每次只有一个任务在执行,不会引发线程安全和数据一致性等 并发问题 同步任务需要等待任务执行完成后才能执行下一个任务,无法同时处理多个任务,响应慢,影响用 户体验 异步任务: 异步任务是在多线程中同时执行,多个任务可以并发执行,同时处理多个请求,响应快,资源

springboot kafka多数据源,通过配置动态加载发送者和消费者 2024-10-08 11:24

前言 最近做项目,需要支持kafka多数据源,实际上我们也可以通过代码固定写死多套kafka集群逻辑,但是如果需要不修改代码扩展呢,因为kafka本身不处理额外逻辑,只是起到削峰,和数据的传递,那么就需要对架构做一定的设计了。 准备test kafka本身非常容易上手,如果我们需要单元测试,引入ja

SpringBoot 集成 Redis 2024-10-08 11:24

一:SpringBoot 集成 Redis ①Redis是一个 NoSQL(not only)数据库, 常作用缓存 Cache 使用。 ②Redis是一个中间件、是一个独立的服务器;常用的数据类型: string , hash ,set ,zset , list ③通过Redis客户端可以使用多种语

SpringBoot整合QQ邮箱 2024-10-08 11:24

SpringBoot可以通过导入依赖的方式集成多种技术,这当然少不了我们常用的邮箱,现在本章演示SpringBoot整合QQ邮箱发送邮件…. 下面按步骤进行: 1.获取QQ邮箱授权码 1.1 登录QQ邮箱 1.2 开启SMTP服务 找到下图中的SMTP服务区域,如果当前账号未开启的话自己手动开启。

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.