IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Spring Boot官方文档原文理解翻译-持续更新中】 -> 正文阅读

[Java知识库]【Spring Boot官方文档原文理解翻译-持续更新中】

Spring Boot官方文档原文理解


Chapter 4. Getting Started

如果你想要入门 Spring Boot 或是 Spring,就从阅读这一部分开始吧。它会回答这些基础的“是什么?”、“怎么做?”和“为什么?”等这类问题,并且包含了 Spring Boot 的介绍和使用说明。稍后我们将指导你搭建第一个 Spring Boot 应用,并且谈论一些核心原则。

4.1. Introducing Spring Boot

Spring Boot 帮助您创建一个单例的、生产级的和基于 Spring 的应用程序。我们对 Spring 平台和第三方库保持中立,所以您可以以最少的麻烦开始,大多数的 Spring Boot 应用甚至只需要很少的(几乎没有的)Spring 配置。
您可以通过 Spring Boot 创建的 Java 应用程序,这些程序通过 java -jar命令或者传统 war 依赖启动,除此之外,我们还提供了一个运行“spring scripts”的命令行工具。

我们的主要目标是:

  • 致力于为所有 Spring 开发者提供更快速、可广泛访问的入门体验
  • 虽然保持开箱即用,但是随着需求开始会偏离默认值迅速摆脱困境
  • 提供一系列非功能性的特性,且通常是大类别的项目(例如内置服务器,安全…)

Chapter 6. Developing with Spring Boot

本文将更详细介绍如何正确使用 Spring Boot,覆盖了类似系统搭建、自动配置和如何运行应用程序的话题。除此之外,也有一些 Spring Boot 最佳实践。虽然 Spring Boot 没有什么过人之处(只不过就是另一个您可以使用的库),但是下面有一些建议,可以让您的开发过程变得更简单。

如果您是从 Spring Boot 开始的,您应该在开始这一章之前先阅读 入门 引导。

6.1. Build Systems

强烈建议您选择一个支持 依赖管理 并且可以发布到“ Maven Central ”仓库(Maven 中心仓库)的依赖自动化搭建系统,最好使用 Maven 或者 Gradle。当然也可以让Spring Boot 与其他的自动化搭建系统一起工作(例如:Ant),不过对比前面两种,我们对其他的自动化搭建系统支持力度不大。

6.1.1. Dependency Management

所有的 Spring Boot 的发行版本都提供了它所支持的一个依赖管理列表。在实践中,您不需要为这些依赖提供版本号,因为 Spring Boot 将会为您自动管理。当你更新升级 Spring Boot 时,这些依赖也会同时进行更新升级,所以您无须担心。

Note

如果您有需要的话,可以指定某个依赖的版本号并且覆盖 Spring Boot 推荐的依赖版本号

依赖管理列表包含了所有可以和 Spring 模块一起使用的第三方库的依赖细化列表。这个列表可以作为一个标准的材料清单 (spring-boot dependencies),用于 Maven 或者 Gradle

Warning

所有的 Spring Boot 的发行版本都和 Spring 框架的一个基础版本相关联。我们强烈建议您不要指定其版本号

6.1.2. Maven

要了解如何使用 Spring Boot 和 Maven,请查看 Spring Boot 的 Maven 插件文档:

6.1.3. Gradle

要了解如何使用 Spring Boot 和 Gradle,请查看 Spring Boot 的 Gradle 插件文档:

6.1.4. Ant

搭建 Spring Boot 项目可以使用Apache的Ant + lvy。spring-boot-antlib模块也有助于Ant创建可执行的jar包。

要声明依赖关系,一个典型的ivy.xml文件如下所示:

<ivy-module version="2.0">
  <info organisation="org.springframework.boot" module="spring-boot-sample-ant" />
  <configurations>
  <conf name="compile" description="everything needed to compile this module" />
  <conf name="runtime" extends="compile" description="everything needed to run
this module" />
  </configurations>
  <dependencies>
  <dependency org="org.springframework.boot" name="spring-boot-starter"
  rev="${spring-boot.version}" conf="compile" />
  </dependencies>
</ivy-module>

一个典型的build.xml文件如下所示:

<project
  xmlns:ivy="antlib:org.apache.ivy.ant"
  xmlns:spring-boot="antlib:org.springframework.boot.ant"
  name="myapp" default="build">
  <property name="spring-boot.version" value="2.7.2" />
  <target name="resolve" description="--> retrieve dependencies with ivy">
  <ivy:retrieve pattern="lib/[conf]/[artifact]-[type]-[revision].[ext]" />
  </target>
  <target name="classpaths" depends="resolve">
  <path id="compile.classpath">
  <fileset dir="lib/compile" includes="*.jar" />
  </path>
  </target>
  <target name="init" depends="classpaths">
  <mkdir dir="build/classes" />
  </target>
  <target name="compile" depends="init" description="compile">
  <javac srcdir="src/main/java" destdir="build/classes"
classpathref="compile.classpath" />
  </target>
  <target name="build" depends="compile">
  <spring-boot:exejar destfile="build/myapp.jar" classes="build/classes">
  <spring-boot:lib>
  <fileset dir="lib/runtime" />
  </spring-boot:lib>
  </spring-boot:exejar>
  </target>
</project>

Tip

如果您不想使用spring-boot-antlib模块,请查看 How-to Guides 中的 Build an Executable Archive from Ant without Using spring-boot-antlib

6.1.5. Starters

启动器是一套方便的依赖描述符,可以将其包含在应用程序中。您可以获得所有 Spring 和其相关技术的一站式服务,而不需要查找示例代码并且复制粘贴大量的依赖描述符。例如,如果您想要使用 Spring 和 JPA 来进行数据库访问,请在项目中包含 spring-boot-starter-data-jpa启动器

启动器包含许多快速启动和运行项目所需的依赖,并且具有一致的、受支持的托管依赖传递关系

在一个名称里的东西是什么?

所有的官方启动器都遵循一个类似的命名模板: spring-boot-starter-** 是一个独特的应用类型。这种命名结构旨在当需要找到启动器时提供帮助。大部分的 IDE 中集成的 Maven 允许按名称查找依赖,例如,安装了合适的 Eclipse 或者是 Spring Tools 插件后,在 POM 编辑器中按 ctrl + space 键入“ spring-boot-starter ”可以获得完整的依赖列表。

正如“Creating Your Own Starter”(创造自己的启动器)所言,第三方启动器不应该以spring-boot开头,因为这是为Spring Boot官方依赖所保留的。当然,一个第三方启动器常常会以项目的名称作为开头(所以一般不用担心)。比如,一个叫做thirdpartproject的第三方项目将会毫无疑问地以thirdpartproject-spring-boot-starter命名

Spring Boot 的org.springframework.boot分组提供下面的应用启动器:

表1.Spring Boot应用启动器

NameDescription
spring-boot-starterSpring Boot的核心启动器,包含自动配置支持,日志记录和YAML
spring-boot-starter-activemq专为JMS(Java消息服务:是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信。Java消息服务是一个与具体平台无关的API,绝大多数MOM提供商都对JMS提供支持。)使用Apache的ActiveMQ消息队列发送消息而生的启动器
spring-boot-starter-amqp用于Spring的AMQP(AMQP:即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议)和Rabbit MQ(RabbitMQ:这是一个开源消息代理软件。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。)的启动器
spring-boot-starter-aop用于Spring AOP 切面方向的编程和AspectJ的启动器
spring-boot-starter-artemis专为JMS使用Apache的Artemis而生的启动器
spring-boot-starter-batch用于Spring批处理任务的启动器
spring-boot-starter-cache用于Spring框架缓存支持的启动器
spring-boot-starter-data-cassandra用于Cassandra分布式数据库(Cassandra:是一套开源分布式NoSQL数据库系统。它最初由Facebook开发,用于储存收件箱等简单格式数据,集GoogleBigTable的数据模型与Amazon Dynamo的完全分布式的架构于一身Facebook于2008将 Cassandra 开源,此后,由于Cassandra良好的可扩展性,被DiggTwitter等知名[Web 2.0](https://baike.baidu.com/item/Web 2.0)网站所采纳,成为了一种流行的分布式结构化数据存储方案。)和String Data Cassandra的启动器
spring-boot-starter-data-cassandra-reactive用于Cassandra分布式数据库和String Data Cassandra Reactive的启动器
spring-boot-starter-data-couchbase专为使用Couchbase面向文档数据库(CouchBase:是一款开源的、分布式的、面向文档的NoSQL数据库,主要用于分布式缓存和数据存储领域。能够通过manage cache提供快速的亚毫米级别的k-v存储操作,并且提供快速的查询和其功能强大的能够指定SQL-like查询的查询引擎。)和Spring Data Couchbase而生的启动器
spring-boot-starter-data-couchbase-reactive用于Cassandra分布式数据库和String Data Cassandra Reactive的启动器
spring-boot-starter-data-elasticsearch用于Elasticsearch搜索(Elasticsearch:是位于 Elastic Stack 核心的分布式搜索和分析引擎。Logstash 和 Beats 有助于收集、聚合和丰富您的数据并将其存储在 Elasticsearch 中。Kibana 使您能够以交互方式探索、可视化和分享对数据的见解,并管理和监控堆栈。Elasticsearch 是索引、搜索和分析魔法发生的地方。)、分析引擎和Spring Data Elasticsearch的启动器
spring-boot-starter-data-jdbc用于Spring Data JDBC(JDBC:全称Java Database Connectivity,也即Java数据库连接,简称JDBC。它是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。JDBC也是Sun Microsystems的商标。我们通常说的JDBC是面向关系型数据库的。)的启动器
spring-boot-starter-data-jpa用于Spring Data JPA(JPA:JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中。)与Hibernate(Hibernate:是一个开放源代码对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JavaEE架构中取代CMP,完成数据持久化的重任。)的启动器
spring-boot-starter-data-ldap用于Spring Data LDAP(LDAP:全称Lightweight Directory Access Protocol, 意为轻型目录访问协议,它是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。)的启动器
spring-boot-starter-data-mongodb用于MongoDB面向文档数据库(MongoDB:是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似jsonbson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引)和Spring Data MongoDB的启动器
spring-boot-starter-data-mongodb-reactive用于MongoDB面向文档数据库和Spring Data MongoDB Reactive的启动器
spring-boot-starter-data-neo4j用于Neo4j图形数据库(Neo4j:是一个高性能的,NOSQL图形数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。)和Spring Data Neo4j的启动器
spring-boot-starter-data-r2dbc用于Spring Data R2DBC的启动器
spring-boot-starter-data-redis用于Spring Data Redis存储Redis键值对与和 Lettuce client的启动器
spring-boot-starter-data-redis-reactive用于Spring Data Redis reactive存储Redis键值对和 Lettuce client的启动器
spring-boot-starter-data-rest专为Spring Data REST在Rest上公开Spring Data 仓库而生的启动器
spring-boot-starter-freemarker专为使用FreeMarker视图(FreeMarker:是一款模板引擎, 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件配置文件源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。)搭建 MVC 网页应用而生的启动器
spring-boot-starter-graphql用于Spring GraphQL搭建GraphQL应用的启动器
spring-boot-starter-groovy-templates用于Groovy模板视图(Groovy:是一种基于JVMJava虚拟机)的敏捷开发语言,它结合了PythonRubySmalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库。)搭建MVC网页应用的启动器
spring-boot-starter-hateoas用于Spring MVC搭建基于超媒体和Restful风格的网页应用和Spring HATEOAS的启动器
spring-boot-starter-integration用于Spring Integration的启动器
spring-boot-starter-jdbc用于HikariCP连接池使用JDBC的启动器
spring-boot-starter-jersey用于JAX-RS和Jersey搭建Restful风格的网页应用的启动器。此外,也可以选用spring-boot-starter-web
spring-boot-starter-jooq用于JDBC使用jOOQ访问SQL数据库的启动器。此外,也可以选用 spring-bootstarter-data-jpa 或者是spring-boot-starter-jdbc
spring-boot-starter-json用于读写JSON(JSON:全称JavaScript Object Notation, JS对象简谱,这是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。)的启动器
spring-boot-starter-jta-atomikos专为JTA事务(JTA:即Java Transaction API,JTA允许应用程序执行分布式事务处理——在两个或多个网络计算机资源上访问并且更新数据。JDBC驱动程序的JTA支持极大地增强了数据访问能力。)使用Atomikos(Atomikos: 是一个为Java平台提供增值服务的并且开源类事务管理器。)而生的启动器
spring-boot-starter-mail用于Java和Spring框架的邮件发送支持的启动器
spring-boot-starter-mustache用于Mustache视图搭建网页应用的启动器
spring-boot-starter-oauth2-client用于Spring Security的OAuth2(OAuth2:是一种授权框架,提供了一套详细的授权机制(指导)。用户或应用可以通过公开的或私有的设置,授权第三方应用访问特定资源。)或OpenID连接客户端特性使用的启动器
spring-boot-starter-oauth2-resource-server用于Spring Security的OAuth2资源服务器特性使用的启动器
spring-boot-starter-quartz用于Spring Quartz的启动器
spring-boot-starter-rsocket用于搭建RSocket客户端和服务器的启动器
spring-boot-starter-security用于Spring Security的启动器
spring-boot-starter-test用于使用包含JU您t Jupiter、Hamcrest和Mockito的依赖代码库测试Spring Boot应用的启动器
spring-boot-starter-thymeleaf用于Thymeleaf视图搭建MVC 网页应用的启动器
spring-boot-starter-validation用于使用Java Ben验证与Hibernate验证器的启动器
spring-boot-starter-web用于使用Spring MVC搭建包含Restful风格的网页应用的启动器。使用Tomcat作为默认嵌入式容器
spring-boot-starter-web-services用于Spring网页服务的启动器
spring-boot-starter-webflux用于使用Spring框架的Reactive网页支持搭建WebFlux应用的启动器
spring-boot-starter-websocket用于使用Spring框架的WebSocket支持搭建WebSocket应用的启动器

除了上面提到的应用启动器,下列启动器常常用于添加 生产就绪 特性:

表2.Spring Boot 生产启动器

NameDescription
spring-boot-starter-actuator用于使用Spring Boot的Actuator提供生产就绪特性帮助监督和管理您的应用的启动器

最后,Spring Boot 还包含了以下启动器,如果您想排除或者更换指定技术面的话会用到:

表3.Spring Boot技术启动器

NameDescription
spring-boot-starter-jetty用于使用Jetty作为内置的servlet容器的启动器,也可选用spring-boot-starter-tomcat启动器
spring-boot-starter-log4j2用于使用Log4j2的日志记录的启动器,也可选用spring-boot-starter-logging启动器
spring-boot-starter-logging用于使用Logback记录日志的启动器,它也是Spring默认日志记录启动器
spring-boot-starter-reactor-netty用于使用Reactor Netty作为内置的reactive HTTP 服务器的启动器
spring-boot-starter-tomcat用于使用Tomcat作为内置的servlet容器的启动器,也是spring-boot-starter-web中使用的默认servlet容器启动器
spring-boot-starter-undertow用于使用Undertow(Undertow:是一个采用 Java 开发的灵活的高性能 Web 服务器,提供包括阻塞和基于 NIO 的非堵塞机制。Undertow 是红帽公司的开源产品,是 Wildfly 默认的 Web 服务器。)作为内置servlet容器的启动器,也可选用spring-boot-starter-tomcat启动器

要了解如何交换技术面,请查看 swapping web serverlogging system 文档

Tip

对于社区贡献的启动器列表,请查看在Github上的spring-boot-starters模块中的 README 文件

6.2. Structuring Your Code

Spring Boot不需要使用任何指定的布局代码来工作,然而,也有些最佳实践是有所帮助的

6.2.1. Using the “default” Package

当一个类不包含package关键字的声明,它被认为在“默认包”下。这种“默认包”的使用通常是不被鼓励且应该摒弃的。,在Spring Boot使用@ComponentScan@ConfigurationPropertiesScan@EntityScan、或者是@SpringBootApplication注解的时候, 它会引起奇怪的 BUG,因为每个 jar 包里的类都是可读的

Tip

建议您这边遵循Java的推荐包命名规范并且使用反向域名(例如:com.example.project

6.2.2. Locating the Main Application Class

我们通常推荐您在其他类上面的根路径包中查找您的主应用类。 @SpringBootApplication注解 常常用于放置在主类上,并且暗中为某些项目定义了一个基础的“搜索包”。例如,如果您编写一个JPA应用,@SpringBootApplication注释的包将用于定位@Entity注解项。此外,使用根路径包也允许组件扫描仅用于您的项目。

Tip

如果不想使用@SpringBootApplication注解, 它导入的@EnableAutoConfiguration@ComponentScan注解也定义了那些行为(这里的行为指的是组件扫描,自动配置等功能),因此换成这两个注解也是可行的

下列列表展示了一个典型的布局:

com
 +- example
  +- myapplication
  +- MyApplication.java
  |
  +- customer
  | +- Customer.java
  | +- CustomerController.java
  | +- CustomerService.java
  | +- CustomerRepository.java
  |
  +- order
  +- Order.java
  +- OrderController.java
  +- OrderService.java
  +- OrderRepository.java

MyApplication.java文件将会声明main方法,以及基本的@SpringBootApplication注解,如下所示:

Java

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class MyApplication {
  public static void main(String[] args) {
  SpringApplication.run(MyApplication.class, args);
  }
}

Kotlin

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
@SpringBootApplication
class MyApplication
fun main(args: Array<String>) {
  runApplication<MyApplication>(*args)
}

6.3. Configuration Classes

Spring Boot 钟爱基于Java的配置,虽然XML文件源也可以使用SpringApplication,我们通常建议您的主要来源应当是一个独立的@Configuration类。通常地,定义main方法的类是一个好的@Configuration的候选者

6.3.1. Importing Additional Configuration Classes

您不需要把所有的@Configuration放在一个独立的类中,@Import注解常常用于导入其他的配置类。此外,您还可以使用@ComponentScan注解,它会自动装配所有包含@Configuration注解的类将其作为Spring的组件

6.3.2. Importing XML Configuration

如果您必须要使用基于XML的配置,那么我们也建议您先从一个@Configuration类开始,接着使用@ImportResource注解加载XML配置文件

Tips

(虽然)网络上有许多使用XML配置的Spring Boot发布示例,(但是)如果可能的话,我们始终建议您使用基于Java的相同配置。比如查找Enable*开头注解是一个好的开端

6.4、 Auto-configuration

Spring Boot自动配置基于添加的 jar 包依赖试图自动地构建Spring应用程序。例如:如果 HSQLDB(Hyper SQL Database) 在类路径下,并且没有手动地配置任何数据库连接的 bean,那么 Spring Boot 自动配置一个内存中的数据库。

通过向其中一个@Configuration配置类中添加@EnableAutoConfiguration或者 @SpringBootApplication注解来选择加入自动配置。

Tips

您应该只添加一个@SpringBootApplication或者@EnableAutoConfiguration注解,通常建议只将其中一个添加到您的@Configuration配置类中

6.4.1. Gradually Replacing Auto-configuration

自动配置是非侵入式的,在任何时候,都可以自定义配置更换特定的自动配置。例如:如果您添加自定义的DataSource的bean,那么默认内置的数据库就会失效.

如果需要了解当前应用的自动配置及其原因,打开应用程序--debug开关,这样做可以启用核心日志器作日志调试并且会将情况输出到控制台。

6.4.2、Disabling Specific Auto-configuration Classes

如果发现应用程序中有不想使用的自动配置类,可以使用 @SpringBootAplication 注解的排除属性来禁用他们,如下所示:

Java

import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })
public class MyApplication {
}

Kotlin

import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration
@SpringBootApplication(exclude = [DataSourceAutoConfiguration::class])
class MyApplication

如果该类不在类路径下,还可以使用注解的excludeName属性并且指定类的全限定名。如果您更喜欢使用@EnableAutoConfiguration而不是@SpringBootApplication注解,excludeexcludeName属性也能使用。顺便一提,使用spring.autoconfigure.exclude属性,还能排除自动配置类的列表

Tips

排除(不需要的自动配置类)不仅可以在注解上而且还能使用属性

Note

虽然自动配置类是公共的,但是这些API的公共部分只能用于禁用自动配置类。这些类的实际内容,就类似于嵌套配置类或者bean方法,只供内部使用,所以我们并不推荐直接使用这些内容

6.6. Using the @SpringBootApplication Annotation

Chapter 13. Production-ready Features

Chapter 17. “How-to” Guides

本文回答了在使用Spring Boot时经常出现的例如“我该怎么做”这类的普通问题。它的覆盖范围可能并不详细,但是确实涵盖了很多内容。

如果你有一个的具体问题我们没有覆盖到,那么你也许想要检查stackoverflow.com,看看有没有人已经提供了回答。这也是一个询问问题的好地方(问的时候请带上spring-boot标签)

如果您想要添加问题的回答到“How to”,我们也非常荣幸地欢迎您扩展这个章节,只要给我们发送一个拉取代码请求即可

17.1. Spring Boot Application

本节包含了与Spring Boot应用相关的话题

17.3. Embedded Web Servers

每个Spring Boot网页应用都包含了一个内置的网页服务器,但也就是这个特性“十分厉害”,产生了大量的“how-to”问题,包括类似于如何去改变内置服务器并且配置它这样的问题等等。如果你对此也有疑问的话,可以从本文开始,因为我们在这里回答了这些问题

17.3.1. Use Another Web Server

大部分的Spring Boot启动器都包含了默认的内置容器

  • 对于servlet栈应用,spring-boot-starter-web通过spring-boot-starter-tomcat包含了Tomcat网页应用服务器,但我们可以使用spring-boot-starter-jetty 或者 spring-boot-starter-undertow替换掉
  • 对于reactive栈应用,spring-boot-starter-webflux通过spring-boot-starter-reactor-netty包含了Reactor Netty框架,但我们可以使用spring-boot-starter-tomcatspring-boot-starter-jetty、或者spring-boot-starter-undertow替换掉

17.7.2. Configure Log4j for Logging

17.16.9. Build an Executable Archive from Ant without Using spring-boot-antlib

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-08-06 10:29:56  更:2022-08-06 10:31:55 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 12:52:03-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码