如何在Spring boot中修改默認端口



如何在Spring boot中修改默認端口

介紹

Spring boot為應用程序提供了很多屬性的默認值。但是有時候,我們需要自定義某些屬性,比如:修改內嵌服務器的端口號。

本篇文章就來討論這個問題。

使用Property文件

第一種方式,也是最常用的方式就是在屬性文件中,覆蓋默認的配置。對於服務器的端口來說,該配置就是:server.port。

默認情況下,server.port值是8080。 我們可以在application.properties中這樣修改為8081:

server.port=8081

如果你使用的是application.yml,那么需要這樣配置:

server:
  port : 8081

這兩個文件都會在Spring boot啟動的時候被加載。

如果同一個應用程序需要在不同的環境中使用不同的端口,這個時候你就需要使用到Spring Boot的profile概念,不同的profile使用不同的配置文件。

比如你在application-dev.properties中:

server.port=8081

在application-qa.properties 中:

server.port=8082

在程序中指定

我們可以在程序中直接指定應用程序的端口,如下所示:

@SpringBootApplication
public class CustomApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(CustomApplication.class);
        app.setDefaultProperties(Collections
          .singletonMap("server.port", "8083"));
        app.run(args);
    }
}

另外一種自定義服務的方法就是實現WebServerFactoryCustomizer接口:

@Component
public class ServerPortCustomizer
        implements WebServerFactoryCustomizer<ConfigurableWebServerFactory> {

    @Override
    public void customize(ConfigurableWebServerFactory factory) {
        factory.setPort(8086);
// factory.setAddress("");
    }
}

使用ConfigurableWebServerFactory可以自定義包括端口在內的其他很多服務器屬性。

使用命令行參數

如果應用程序被打包成jar,我們也可以在命令行運行時候,手動指定 server.port 。

java -jar spring-5.jar --server.port=8083

或者這樣:

java -jar -Dserver.port=8083 spring-5.jar

值生效的順序

上面我們將了這么多修改自定義端口的方式,那么他們的生效順序是怎么樣的呢?

  1. 內置的server配置
  2. 命令行參數
  3. property文件
  4. @SpringBootApplication配置的主函數

更多教程請參考 flydean的博客


免責聲明!

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



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