第一種方式咱們只須要在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
咱們在上面看到了端口號是在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