SpringBoot server.port配置原理详解

yizhihongxing

让我们来详细讲解一下“SpringBoot server.port配置原理详解”。

什么是server.port配置

在SpringBoot应用中,我们可以通过server.port属性来指定应用的端口号。这个属性可以在配置文件(如application.properties、application.yml等)或者命令行参数中指定。

配置文件中指定server.port

在应用配置文件中(如application.properties、application.yml等)指定端口号,可以通过在配置文件中添加以下内容(以application.properties举例):

server.port=8080

通过这种方式指定端口号,SpringBoot会在应用启动时读取配置文件,从中读取server.port属性,然后将应用绑定到指定的端口上。

命令行参数中指定server.port

在命令行参数中指定端口号,可以使用以下命令:

java -jar your_application.jar --server.port=8080

通过这种方式指定端口号,SpringBoot会在应用启动时读取--server.port参数,然后将应用绑定到指定的端口上。

server.port配置原理分析

SpringBoot中的端口号配置实际上涉及到了两个部分:EmbeddedServletContainerCustomizerServerProperties

EmbeddedServletContainerCustomizer是一个接口,它的实现类可以用来定制嵌入式的Servlet容器。当SpringBoot应用启动时,SpringBoot会创建一个嵌入式的Servlet容器,并将应用绑定到容器上。而EmbeddedServletContainerCustomizer的实现类,就可以在容器创建时,对容器进行一些自定义的配置。SpringBoot提供了很多默认的EmbeddedServletContainerCustomizer实现类,其中有一个ServerPropertiesEmbeddedServletContainerCustomizer,它用来处理ServerProperties中的配置。

ServerProperties是一个自动配置类,它提供了一些默认的配置项。其中就包含了server.port属性。当SpringBoot应用启动时,ServerProperties会读取配置文件中的配置,并将其保存在内存中。然后,ServerPropertiesEmbeddedServletContainerCustomizer会将这些配置应用到Servlet容器上。

示例1:指定端口号为8080

下面是一个application.properties的例子,其中通过server.port属性指定了端口号为8080:

server.port=8080

当应用启动时,SpringBoot会读取配置文件,通过ServerProperties将端口号保存在内存中。然后,通过ServerPropertiesEmbeddedServletContainerCustomizer将端口号应用到嵌入式Servlet容器上。最终,应用会绑定到8080端口。

示例2:通过命令行参数指定端口号

下面是一个通过命令行参数指定端口号的例子:

java -jar your_application.jar --server.port=8080

当应用启动时,SpringBoot会读取命令行参数--server.port=8080,将端口号保存在内存中。然后,通过ServerPropertiesEmbeddedServletContainerCustomizer将端口号应用到嵌入式Servlet容器上。最终,应用会绑定到8080端口。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot server.port配置原理详解 - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • 浅谈Java中格式化输出

    Java中格式化输出是指通过特定的语法结构控制输出内容的方式,其使用起来非常灵活方便。下面是Java中格式化输出的一些基本知识和使用技巧。 格式化输出的基础知识 要使用Java中的格式化输出,需要了解以下基础知识: 语法结构 Java中格式化输出的语法结构为: System.out.printf(format, args); 其中,format是格式化字符串…

    Java 2023年5月26日
    00
  • Java hashCode() 方法详细解读

    Java hashCode() 方法详细解读 1. 什么是hashCode()方法 hashCode()方法是Java中Object类提供的一个方法,作用是返回一个对象的哈希值。哈希值是一个非负整数,它是根据对象的内部信息生成的,可以用于判断两个对象是否相等。 2. hashCode()方法的作用 在Java中,如果两个对象的哈希值不相等,那么它们一定不相等…

    Java 2023年5月26日
    00
  • 详解Java使用JDBC连接MySQL数据库

    详解 Java 使用 JDBC 连接 MySQL 数据库 概述 在 Java 开发中,经常需要与 MySQL 数据库进行交互,而实现这个过程需要使用到 JDBC。JDBC(Java Database Connectivity)是 Java 提供的一套用于访问关系型数据库的接口,本文将详细讲解在 Java 中使用 JDBC 连接 MySQL 数据库的完整攻略。…

    Java 2023年5月19日
    00
  • Java字符串的压缩与解压缩的两种方法

    Java 字符串的压缩与解压缩是一种很常见的操作,在 Java 中有多种方法可以实现这个目的。本篇攻略将详细介绍 Java 字符串压缩与解压缩的两种方法,包括使用 java.util.zip 包和使用 Apache Commons Compress 库。 方法一:使用 java.util.zip 包进行压缩与解压缩 压缩字符串 import java.io.…

    Java 2023年5月19日
    00
  • java定时任务的实现方法

    下面是针对”Java定时任务的实现方法”的详细攻略,主要介绍如何使用Java实现定时任务。 什么是定时任务? 定时任务是指在预定时期或时间,按照一定轨迹执行一些预定的操作或服务。 Java中实现定时任务的方法 1. Timer类 Java中提供了java.util.Timer类,它可以帮助我们实现简单的定时任务。 public class TimerTask…

    Java 2023年5月20日
    00
  • Java之Class.forName()用法案例详解

    当我们在Java程序中需要动态加载一个类时,可以使用Class.forName()方法。Class.forName()方法可以根据完整类名动态加载类,并返回对应的Class对象。在本文中,我们将详细介绍Class.forName()方法的用法,并提供两个实用案例。 Class.forName()方法的用法 Class.forName()方法可以根据完整类名动…

    Java 2023年5月20日
    00
  • Spring Boot 项目发布到 Tomcat 服务器的操作步骤

    下面是Spring Boot项目发布到Tomcat服务器操作步骤的完整攻略: 1. 生成war包 在pom.xml文件中添加如下代码 <packaging>war</packaging> 然后在Maven工具栏中执行Package命令,即可生成war包,一般会在target目录下生成。也可以通过命令行的方式执行mvn clean pa…

    Java 2023年6月2日
    00
  • spring事务传播的Propagation.REQUIRES_NEW以及NEVER MANDATORY验证,及其失效的诡异问题

    NEVER 不使用事务,如果当前事务存在,则抛出异常 验证: @Service public class PrService { @Autowired PrDao dao; @Transactional public void savea() { dao.a();//保存第一条数据 saveb(); } @Transactional(propagation …

    Java 2023年5月8日
    00
合作推广
合作推广
分享本页
返回顶部