如何在Spring boot中修改默認端口java
Spring boot爲應用程序提供了不少屬性的默認值。可是有時候,咱們須要自定義某些屬性,好比:修改內嵌服務器的端口號。spring
本篇文章就來討論這個問題。服務器
第一種方式,也是最經常使用的方式就是在屬性文件中,覆蓋默認的配置。對於服務器的端口來講,該配置就是: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
上面咱們將了這麼多修改自定義端口的方式,那麼他們的生效順序是怎麼樣的呢?
更多教程請參考 flydean的博客