SpringBoot修改默認端口號的幾種方式

  • 修改application.properties

第一種方式咱們只須要在application.properties中加這樣的一句話就能夠了:server.port=8004。爲何這種方式能夠實現修改SpringBoot的默認端口呢?由於在SpringBoot中有這樣的一個類:ServerProperties。咱們能夠大體看一下這個類:html

@ConfigurationProperties(prefix = "server", ignoreUnknownFields = true)
public class ServerProperties
		implements EmbeddedServletContainerCustomizer, EnvironmentAware, Ordered {
 
	/**
	 * Server HTTP port.
	 */
	private Integer port;

在這個類裏有一個@ConfigurationProperties註解,這個註解會讀取SpringBoot的默認配置文件application.properties的值注入到bean裏。這裏定義了一個server的前綴和一個port字段,因此在SpringBoot啓動的時候會從application.properties讀取到server.port的值。咱們接着往下看一下:
 java

@Override
	public void customize(ConfigurableEmbeddedServletContainer container) {
		if (getPort() != null) {
			container.setPort(getPort());
		}

這裏有一個customize的方法,這個方法裏會給SpringBoot設置讀取到的端口號。web

  • 實現EmbeddedServletContainerCustomizer

咱們在上面看到了端口號是在customize這個方法中設置的,而這個方法是在EmbeddedServletContainerCustomizer這個接口中的,因此咱們能夠實現這個接口,來更改SpringBoot的默認端口號。具體代碼以下:spring

@RestController
@EnableAutoConfiguration
@ComponentScan
public class FirstExample implements EmbeddedServletContainerCustomizer {
 
    @RequestMapping("/first.do")
    String home() {
        return "Hello World!世界你好!O(∩_∩)O哈哈~!!!我不是太很好!";
    }
 
    public static void main(String[] args) {
 
        SpringApplication.run(FirstExample.class, args);
    }
 
    @Override
    public void customize(ConfigurableEmbeddedServletContainer configurableEmbeddedServletContainer) {
 
        configurableEmbeddedServletContainer.setPort(8003);
    }
}

而後你在啓動SpringBoot的時候,發現端口號被改爲了8003.tomcat

  • 經過編碼的方式來指定端口

 在啓動類中添加servletContainer方法app

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.context.annotation.Bean;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

    @Bean
    public TomcatServletWebServerFactory servletContainer(){
        return new TomcatServletWebServerFactory(8081) ;
    }

}
  • 使用命令行參數

若是你只是想在啓動的時候修改一次端口號的話,能夠用命令行參數來修改端口號。配置以下:java -jar 打包以後的SpringBoot.jar  --server.port=8000ide

  • 使用虛擬機參數

你一樣也能夠把修改端口號的配置放到JVM參數裏。配置以下:-Dserver.port=8009。 這樣啓動的端口號就被修改成8009了。編碼

能夠根據本身的業務需求,選擇相應的配置方式。spa

轉自:SpringBoot修改默認端口號.net

spring boot 指定啓動端口

相關文章
相關標籤/搜索