zoukankan      html  css  js  c++  java
  • 如何为Spring Boot应用程序配置端口

    【转】https://www.javaroad.cn/questions/11162

    • 1.1通过属性文件更新 .

      /src/main/resources/application.properties

      server.port = 8888

      Update via a yaml file.

      server:
      
           port: 8888
      

      EmbeddedServletContainerCustomizer

      @Component
      public class CustomContainer implements EmbeddedServletContainerCustomizer {
      
          @Override
          public void customize(ConfigurableEmbeddedServletContainer container) {
      
              container.setPort(8888);
      
          }
      
      }
      

    • 5

      application.properties 资源中存在的文件:

      server.port=8082
      

    • 7

      当您需要以编程方式执行此操作时,可以在启动期间进行设置:

      System.getProperties().put( "server.port", 80 );
      SpringApplication.run(App.class, args);
      

      这可能有助于环境相关的端口 . 祝你今天愉快


    • 2

      有三种方法可以做到这一点

      1在 application.properties 文件中设置server.port属性

      server.port = 8090
      

      2在 application.yml 文件中设置服务器端口属性

      server:
           port: 8090
      

      3在 main 方法中将属性设置为系统属性

      System.setProperty("server.port","8090");
      

    • 2

      您还可以使用 SERVER_PORT 环境变量来配置Spring Boot端口 . 只需设置环境变量并重新启动应用程序:

      set SERVER_PORT=9999 // on windows machine
      export SERVER_PORT=9999 // on linux
      

      请注意,如果您未在系统范围内设置这些环境变量,则应在同一会话中运行启动应用程序 .


    • 9

      由于Spring Boot提供various configuration externalization mechanism(通过各种 PropertySource 实现和/或按顺序连接到 Environment 对象的处理器),您可以通过以下方法设置jar存档的任何属性 outside :

      • 通过命令行参数传递属性为 application argument
      java -jar <path/to/my/jar> --server.port=7788
      
      • 来自 SPRING_APPLICATION_JSON 中的属性(Spring Boot 1.3.0)

      • 在U * IX shell中定义环境变量:

      SPRING_APPLICATION_JSON='{"server.port":7788}' java -jar <path/to/my/jar>
      
      • 使用Java系统属性:
      java -Dspring.application.json='{"server.port":7788}' -jar <path/to/my/jar>
      
      • 通过命令行参数:
      java -jar <path/to/my/jar> --spring.application.json='{"server.port":7788}'
      
      • 定义 JVM system property
      java -Dserver.port=7788 -jar <path/to/my/jar>
      
      • 定义 OS environment variable

      • U * IX Shell

      SERVER_PORT=7788 java -jar <path/to/my/jar>
      
      • Windows
      SET SERVER_PORT=7788
      java -jar <path/to/my/jar>
      
      • 将 property 置于 ./config/application.properties configuration file
      server.port=7788
      

      并运行:

      java -jar <path/to/my/jar>
      
      • 在 ./config/application.yaml 放置 properties
      server:
          port: 7788
      

      并运行:

      java -jar <path/to/my/jar>
      
      • 在 ./application.properties 放置 properties
      server.port=7788
      

      并运行:

      java -jar <path/to/my/jar>
      
      • 在 ./application.yaml 放置 properties
      server:
          port: 7788
      

      并运行:

      java -jar <path/to/my/jar>
      

      您可以将上述方法组合在一起,并且列表中的前一个配置优先于后一个配置 .

      例如:

      SERVER_PORT=2266 java -Dserver.port=5566 -jar <path/to/my/jar> --server.port=7788
      

      服务器将启动并侦听端口7788 .

      这在PropertySources中提供优先级较低的默认属性非常有用(通常打包在存档中或在源代码中编码),然后在运行时环境中覆盖它 . 这是Spring Boot的设计理念:

      开箱即用,但随着要求开始偏离默认值,请尽快摆脱困境 .


      SERVER_NAMEserver.name 转换由Relaxed Binding完成 .


    • 4

      使用属性server.port = 8080就像在其他答案中提到的那样绝对是一种方法 . 只是想提一下你也可以暴露一个环境属性:

      SERVER_PORT=8080
      

      由于Spring引导能够替换""为"",并且在最近版本中为环境变量更低为UPPER大小写 . 这在容器中特别有用,你需要做的就是定义那个环境变量而不添加/编辑 application.properties 或通过命令行传递系统属性(即 -Dserver.port=$PORT


    • 14

      只需在项目的 src/main/resources 中有一个 application.properties 就可以了

      server.port=****
      

      其中 **** 指的是端口号 .


    • 16

      您可以通过在配置中覆盖 EmbeddedServletContainerFactory bean来指定端口(基于java或xml) . 在那里,您可以为使用的嵌入式servlet容器指定端口 . 请看那里的Spring Boot - Core "Embedded Servlet Container Support"段和例子 . 希望这可以帮助 .


    • 89

      您可以在java代码中设置端口:

      HashMap<String, Object> props = new HashMap<>();
      props.put("server.port", 9999);
      
      new SpringApplicationBuilder()
          .sources(SampleController.class)                
          .properties(props)
          .run(args);
      

      或者在application.yml中:

      server:
          port: 9999
      

      或者在application.properties中:

      server.port=9999
      

      或者作为命令行参数:

      -Dserver.port=9999
      

    • 4

      application.properties 文件中添加此项

      server.port= 8080
      

    • 910

      在Spring Boot Application中,有两种主要方法可以更改Embedded Tomcat中的端口 .

      Modify application.properties

      首先,您可以尝试/ resources文件夹中的application.properties文件:

      application.properties file

      Modify a VM option

      第二种方法,如果你想避免修改任何文件并检查你在本地只需要的东西,你可以使用vm arg:

      转到运行 - >编辑配置 - > VM选项

      -Dserver.port=8090
      

      Change port with a vm arg

      此外,如果您需要更多信息,可以在此处查看以下博客文章:Changing the port on a Spring Boot Application


    • 90

      希望这一个帮助

      application.properties=> 
      
      server.port=8090
      
      application.yml=> 
      
      server
        port:8090
      

    • 69

      默认端口是:8080但我们可以在application.properties中自定义端口号,如下所示

      spring.mvc.view.prefix=/WEB-INF/jsp/
      spring.mvc.view.suffix=.jsp
      server.port = 5050 -- #here we can give any port number.
      

    • 12

      扩展其他答案:

      测试文档中有一节介绍如何在集成测试中配置端口:


      在集成测试中,使用注释 @SpringBootTestwebEnvironment 值进行端口配置 .


      随机端口:

      @SpringBootTest(webEnvironment=WebEnvironment.RANDOM_PORT)
      

      您可以使用 @LocalServerPort 注入值,该值与 @Value("${local.server.port}") 相同 .

      • 示例:

      随机端口测试配置:

      @RunWith(SpringRunner.class
      @SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
      public class ExampleTest {
         ...
         @LocalServerPort //to inject port value
         int port;
      }
      

      定义的端口:

      @SpringBootTest(webEnvironment=WebEnvironment.DEFINED_PORT)
      

      它取得了 Value server.port 如果已定义 .

      • 如果使用 @TestPropertySource(properties = "server.port=9192") 定义,则它将覆盖其他已定义的值 .

      • 如果不是,则从 src/test/resources/application.properties (如果存在)获取值 .

      • 最后,如果未定义,则以默认 8080 开头 .

      例:

      定义的端口测试配置:

      @RunWith(SpringRunner.class)
      @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
      @TestPropertySource(properties = "server.port=9192")
      public class DemoApplicationTests {
      
          @Test
          public void contextLoads() {
          }
      
      }
      

    • 10

      通过更改application.properties,您可以在服务器配置中更改许多其他内容 . 像会话超时,地址和端口等 . 请参阅下面的帖子

      参考:http://docs.spring.io/spring-boot/docs/1.4.x/reference/html/common-application-properties.html

      我用了几个,如下所示 .

      server.session.timeout=1
      server.port = 3029
      server.address= deepesh
      

    • 13

      在application.properties文件中提供端口号将解决该问题

      server.port = 8080
      

      “端口取决于您的选择,您希望托管应用程序的位置”


    • 42

      said in docs使用命令行选项将 server.port 设置为jvm --server.port=8090 作为系统属性,或者在 /src/main/resources/ 中添加 application.properties

      server.port = 8090
      

      用于随机端口使用

      server.port=0
      

    • 7

      如果你谷歌为 Gradle Spring Port ,这个问题是第一个结果 .

      如果您使用gradle,如果已经应用了Spring Boot Gradle Plugin,则可以执行以下操作:

      bootRun {
          args += ["--server.port=[PORT]"]
      }
      

      如需更复杂的答案,请参阅我的答案here .


    • 2

      实际上,最简单的方法是设置server.port属性 .

      如果您使用STS作为IDE,从版本3.6.7开始实际上有Spring属性编辑器用于打开属性文件 .

      此编辑器为所有Spring Boot属性提供自动完成功能 . 如果您编写端口并按CTRL SPACE,server.port将是第一个选项 .


    • 133

      如果您正在使用 application.yml ,请将以下行添加到其中

      server:
           port: 9000
      

      当然0为随机端口 .


    • 38

      您可以在/ src / main / resources /下的application.properties中进行设置

      server.port = 8090
      

    • 31

      application.properties 中包括以下属性

      server.port=8080
      

    • 7

      如果您想在本地运行它,请使用此 -

      mvn spring-boot:run -Drun.jvmArguments='-Dserver.port=8085'

      截至 Spring Boot 2.0 ,这是有效的命令(线索是here):

      mvn spring-boot:run -Dspring-boot.run.arguments=--server.port=8085
      

    • 7

      此外,您可以以编程方式配置端口

      @Configuration
      public class ServletConfig {
          @Bean
          public EmbeddedServletContainerCustomizer containerCustomizer() {
              return (container -> {
                  container.setPort(8012);
              });
          }
      }
      

    • 3

      Spring documentation中所述,有几种方法可以做到:

      您在命令行中设置端口(例如8888)

      -Dserver.port=8888--server.port=8888

      示例: java -jar -Dserver.port=8888 test.jar

      或者在application.properties中设置端口

      server.port=${port:4588}
      

      或(在application.yml中使用yaml语法)

      server:
         port: ${port:4588}
      

      如果在命令行中设置-Dport(或-Dserver.port)传递的端口,则将考虑此端口 . 如果没有,则默认端口为4588 .

      如果要在属性文件中强制执行任何环境变量的端口,则只需编写:

      server.port=8888
      

    • 3

      由于嵌入式Tomcat,大多数springboot在 port:8080 上运行 . 在某些情况下,它可能会抛出错误 port 8080 already in use . 为了避免这种问题,我们可以配置服务器端口 .

      使用application.properties

      添加 server.port=9898

      在运行时配置上

      用以下参数运行你的应用程序 .

      spring-boot:run -Drun.jvmArguments='-Dserver.port=8081'


    • 43
      • 正如大家所说,你可以在application.properties中指定
        server.port = 9000 (可以是任何其他值)

      • 如果您在项目中使用 spring Actuator ,默认情况下它指向
        8080,如果你想改变它,那么在application.properties中提一下
        management.port = 9001 (可以是任何其他值)


    • 4

      您可以在以下方法中添加端口 .

      • 运行 - >配置部分

      • application.xml 添加 server.port=XXXX


    • 15

      当Spring启动应用程序启动时,Tomcat等嵌入式服务器以默认端口启动 . 嵌入式tomcat默认以8080端口启动 . 有许多方法可以更改默认服务器端口 .

      Using Property File (.properties/.yml)

      要使用属性文件更改服务器端口,我们需要配置 server.port 属性 .

      a . 在类路径中使用application.properties,例如src main resources application.properties

      server.port = 8585
      

      服务器将以8585端口启动 . 要获取随机服务器端口,请为该属性指定0 .

      server.port = 0
      

      现在,spring boot将在系统中任何服务器当前未使用的端口上启动服务器 .

      b . 在类路径中使用application.yml,例如src main resources application.yml .

      server:
        port: 8585
      

      服务器将以8585端口开始 .

      对于随机端口,分配0 .

      server:
        port: 0
      

      Using java Command with --server.port or -Dserver.port

      假设我们有一个名为my-app.jar的可执行JAR,然后在使用java命令启动spring boot应用程序时,我们可以使用如下参数 .

      使用--server.port

      java -jar my-app.jar  --server.port=8585
      

      使用-Dserver.port

      java -jar -Dserver.port=8585 my-app.jar
      

      服务器将以8585端口开始 .

      Using java Command with --port or -Dport in Short

      简而言之,我们可以删除server关键字并使其成为任何短关键字,如--port和-Dport . 我们可以使用任何短关键字 . 这里我们使用port作为短关键字 . 为了实现它,我们需要在属性文件中配置占位符,如下所示 .

      使用application.properties

      server.port=${port:8282}
      

      使用application.yml

      server:
         port: ${port:8282}
      

      如果我们不将端口作为参数传递,那么默认服务器将以8282开始 . 如果我们想要一个不同的端口,那么我们需要在参数中传递所需的端口,如下所示 . 假设我们有一个名为my-app.jar的可执行JAR .

      使用--port

      java -jar my-app.jar --port=8585
      

      使用-Dport

      java -jar -Dport=8585 my-app.jar
      

      服务器将以8585端口开始 .

      Using SERVER_PORT with SpringApplication Programmatically

      SpringApplication有一个setDefaultProperties()方法,用于更改spring引导默认属性 . 假设我们想要更改默认端口,那么我们需要创建一个Map并使用SERVER_PORT键放置一个端口 . 找到这个例子 .

      MyApplication.java

      package com.humoyun;
      
      import java.util.HashMap;
      import java.util.Map;
      import org.springframework.boot.SpringApplication;
      import org.springframework.boot.autoconfigure.SpringBootApplication;
      
      @SpringBootApplication
      public class MyApplication {
          public static void main(String[] args) {
              SpringApplication application = new SpringApplication(MyApplication.class);
              Map<String, Object> map = new HashMap<>();
              map.put("SERVER_PORT", "8585");
              application.setDefaultProperties(map);
              application.run(args);
              }     
      }
      

      Spring启动将使用8585端口启动服务器 .

  • 相关阅读:
    混合知识点
    源码系列--OkHttp(CallServerInterceptor)
    源码系列--OkHttp(2)
    源码系列--OkHttp
    java代码编译得到smali代码
    C++入门笔记
    Flutter入门(五)--表单+单选/多选+日期+轮播+对话框
    Flutter入门(四)--顶部导航+侧边栏+按钮
    Flutter入门(三)-底部导航+路由
    Flutter入门(二)--布局
  • 原文地址:https://www.cnblogs.com/exmyth/p/11345520.html
Copyright © 2011-2022 走看看