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

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

介紹

Spring boot爲應用程序提供了不少屬性的默認值。可是有時候,咱們須要自定義某些屬性,好比:修改內嵌服務器的端口號。spring

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

使用Property文件

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

默認狀況下,server.port值是8080。 咱們能夠在application.properties中這樣修改成8081:ide

server.port=8081

若是你使用的是application.yml,那麼須要這樣配置:函數

server:
  port : 8081

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

若是同一個應用程序須要在不一樣的環境中使用不一樣的端口,這個時候你就須要使用到Spring Boot的profile概念,不一樣的profile使用不一樣的配置文件。 命令行

好比你在application-dev.properties中:code

server.port=8081

在application-qa.properties 中:server

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的博客

相關文章
相關標籤/搜索