📜  Spring Boot – 初学者

📅  最后修改于: 2022-05-13 01:55:39.585000             🧑  作者: Mango

Spring Boot – 初学者

在引入 Spring Boot 之前,Spring Developers 过去常常在依赖管理上花费大量时间。引入 Spring Boot Starters 来解决这个问题,这样开发人员可以在实际代码上花费比依赖项更多的时间。 Spring Boot Starters 是依赖描述符,可以在 pom.xml 部分下添加。对于不同的 Spring 和相关技术,大约有 50 多个 Spring Boot Starters。这些 starter 以一个名称提供所有依赖项。例如,如果要使用 Spring Data JPA 进行数据库访问,则可以包含spring-boot-starter-data-jpa依赖项。

使用 Starters 的优点如下:

  • 通过减少开发人员的配置时间来提高生产力。
  • 由于要添加的依赖项数量减少了,因此管理 POM 更容易。
  • 经测试,生产就绪并支持依赖关系配置。
  • 无需记住依赖项的名称和版本。

Spring Boot Starter Data JPA 如下图所示:


    
        org.springframework.boot
        spring-boot-starter-data-jpa
    

这提供了所有必需的依赖项,可以在 IntelliJ IDEA 的 Maven 选项卡下看到。

Spring Boot Data JPA 依赖项



在早期,开发人员过去常常包含所有这些依赖项。现在 Spring Boot Starters 为所有这些提供了一个依赖项。官方启动器遵循命名约定spring-boot-starter-* ,其中*表示应用程序类型。例如,如果我们想使用 Spring MVC 构建包含 RESTful 应用程序的 Web,我们必须使用spring-boot-starter-web依赖项。

第三方启动器

如果您想制作自己的启动器或其他第三方启动器名称,则不应以spring-boot开头,因为它是为官方 Spring Boot 启动器保留的。它可以以项目名称开头。例如,如果项目名称是gfg-code-template ,那么启动器的名称可以是gfg-code-template-spring-boot-starter

在这里,我们将讨论所有 3 个启动器,以下启动器由org.springframework.boot组下的 Spring Boot 提供。它们即涵盖如下:

  1. 应用启动器
  2. 生产启动器
  3. 技术入门

让我们以相同的顺序详细说明这些启动器,如下所示:

(A) Spring Boot 应用启动器

Name 

Description



spring-boot-starterCore starter, including auto-configuration support, logging, and YAML
spring-boot-starter-activemqStarter for JMS messaging using Apache ActiveMQ
spring-boot-starter-amqpStarter for using Spring AMQP and Rabbit MQ
spring-boot-starter-aopStarter for aspect-oriented programming with Spring AOP and AspectJ
spring-boot-starter-artemisStarter for JMS messaging using Apache Artemis
spring-boot-starter-batchStarter for using Spring Batch
spring-boot-starter-cacheStarter for using Spring Framework’s caching support
spring-boot-starter-data-cassandraStarter for using Cassandra distributed database and Spring Data Cassandra
spring-boot-starter-data-cassandra-reactiveStarter for using Cassandra distributed database and Spring Data Cassandra Reactive
spring-boot-starter-data-couchbaseStarter for using Couchbase document-oriented database and Spring Data Couchbase
spring-boot-starter-data-couchbase-reactiveStarter for using Couchbase document-oriented database and Spring Data Couchbase Reactive
spring-boot-starter-data-elasticsearchStarter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch
spring-boot-starter-data-jdbcStarter for using Spring Data JDBC
spring-boot-starter-data-jpaStarter for using Spring Data JPA with Hibernate
spring-boot-starter-data-ldapStarter for using Spring Data LDAP
spring-boot-starter-data-mongodbStarter for using MongoDB document-oriented database and Spring Data MongoDB
spring-boot-starter-data-mongodb-reactiveStarter for using MongoDB document-oriented database and Spring Data MongoDB Reactive
spring-boot-starter-data-neo4jStarter for using Neo4j graph database and Spring Data Neo4j
spring-boot-starter-data-r2dbcStarter for using Spring Data R2DBC
spring-boot-starter-data-redisStarter for using Redis key-value data store with Spring Data Redis and the Lettuce client
spring-boot-starter-data-redis-reactiveStarter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client
spring-boot-starter-data-restStarter for exposing Spring Data repositories over REST using Spring Data REST
spring-boot-starter-freemarkerStarter for building MVC web applications using FreeMarker views
spring-boot-starter-groovy-templatesStarter for building MVC web applications using Groovy Templates views
spring-boot-starter-hateoasStarter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS
spring-boot-starter-integrationStarter for using Spring Integration
spring-boot-starter-jdbcStarter for using JDBC with the HikariCP connection pool
spring-boot-starter-jerseyStarter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web
spring-boot-starter-jooqStarter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc
spring-boot-starter-jsonStarter for reading and writing json
spring-boot-starter-jta-atomikosStarter for JTA transactions using Atomikos
spring-boot-starter-mailStarter for using Java Mail and Spring Framework’s email sending support
spring-boot-starter-mustacheStarter for building web applications using Mustache views
spring-boot-starter-oauth2-clientStarter for using Spring Security’s OAuth2/OpenID Connect client features
spring-boot-starter-oauth2-resource-serverStarter for using Spring Security’s OAuth2 resource server features
spring-boot-starter-quartzStarter for using the Quartz scheduler
spring-boot-starter-rsocketStarter for building RSocket clients and servers
spring-boot-starter-securityStarter for using Spring Security
spring-boot-starter-testStarter for testing Spring Boot applications with libraries including JUnit Jupiter, Hamcrest and Mockito
spring-boot-starter-thymeleafStarter for building MVC web applications using Thymeleaf views
spring-boot-starter-validationStarter for using Java Bean Validation with Hibernate Validator
spring-boot-starter-webStarter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container.
spring-boot-starter-web-servicesStarter for using Spring Web Services
spring-boot-starter-webfluxStarter for building WebFlux applications using Spring Framework’s Reactive Web support
spring-boot-starter-websocketStarter for building WebSocket applications using Spring Framework’s WebSocket support

(B) Spring Boot 生产启动器

Name

Description

spring-boot-starter-actuatorStarter for using Spring Boot’s Actuator which provides production-ready features to help you monitor and manage your application

(C) Spring Boot 技术入门

Name

Description

spring-boot-starter-jettyStarter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat
spring-boot-starter-log4j2Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging
spring-boot-starter-loggingStarter for logging using Logback. Default logging starter
spring-boot-starter-reactor-nettyStarter for using Reactor Netty as the embedded reactive HTTP server.
spring-boot-starter-tomcatStarter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web
spring-boot-starter-undertowStarter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat