如何為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端口啟動服務器 .


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM