SpringBoot修改默認端口號
阿新 • • 發佈:2017-11-26
有時 res lds fig article override comment env 註解
view plain copy
有時候我們可能需要啟動不止一個SpringBoot,而SpringBoot默認的端口號是8080,所以這時候我們就需要修改SpringBoot的默認端口了。修改SpringBoot的默認端口有兩種方式。下面就分別說一下這兩種方式。
修改application.properties
第一種方式我們只需要在application.properties中加這樣的一句話就可以了:server.port=8004。為什麽這種方式可以實現修改SpringBoot的默認端口呢?因為在SpringBoot中有這樣的一個類:ServerProperties。我們可以大致看一下這個類:
[java] view plain copy
- @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] view plain copy
- @Override
- public void customize(ConfigurableEmbeddedServletContainer container) {
- if (getPort() != null) {
- container.setPort(getPort());
- }
這裏有一個customize的方法,這個方法裏會給SpringBoot設置讀取到的端口號。
實現EmbeddedServletContainerCustomizer
我們在上面看到了端口號是在customize這個方法中設置的,而這個方法是在EmbeddedServletContainerCustomizer這個接口中的,所以我們可以實現這個接口,來更改SpringBoot的默認端口號。具體代碼如下: [java]- @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);
- }
- }
使用命令行參數
如果你只是想在啟動的時候修改一次端口號的話,可以用命令行參數來修改端口號。配置如下:java -jar 打包之後的SpringBoot.jar --server.port=8000使用虛擬機參數
你同樣也可以把修改端口號的配置放到JVM參數裏。配置如下:-Dserver.port=8009。 這樣啟動的端口號就被修改為8009了。
SpringBoot修改默認端口號