W3Schools Learner's Blog

W3Schools Programming knowledge summary website

div

12/20/2021

Spring boot change default port of tomcat embedded server

  By default, Spring boot applications start with embedded tomcat server start at default port 8080. We can change default embedded server port of tomat to any other port, using any one of below technique.

TIP – To scan for a free port (using OS natives to prevent clashes) use server.port=0. Now spring boot will find any unassigned http port for us.

1. Change default server port from properties file

We can do lots of wonderful things by simply making few entries in application properties file in any spring boot application. Changing server port is one of them.

1.1. application.properties

application.properties
server.port=9000

1.1. application.yml

application.yml
server:
  port : 9000

2. Change the server port programatically

EmbeddedServletContainerCustomizer interface is used to customize embedded tomcat configuration. Any beans of this type will get a callback with the container factory before the container itself is started, so we can set the portaddresserror pages etc.

2.1. Spring boot2 – WebServerFactoryCustomizer interface

Change default server port in spring boot2 applications by implementing ConfigurableWebServerFactory interface

AppContainerCustomizer.java
@Component
public class AppContainerCustomizer
            implements WebServerFactoryCustomizer< ConfigurableWebServerFactory > {
   
    @Override
    public void customize(ConfigurableWebServerFactory factory) {
        factory.setPort(9000);
    }
}

2.2. Spring boot 1.x – EmbeddedServletContainerCustomizer interface

Change default server port in spring boot 1.x applications by implementing EmbeddedServletContainerCustomizer interface.

AppContainerCustomizer.java
@Component
public class AppContainerCustomizer implements EmbeddedServletContainerCustomizer {
 
    @Override
    public void customize(ConfigurableEmbeddedServletContainer container) {
 
        container.setPort(9000);
    }
}

3. Spring boot change default port from command line

If the application is built as uber jar, we may consider this option as well. In this technique, we will pass ‘server.port’ argument during application run command.

$ java -jar -Dserver.port=9000 spring-boot-demo.jar

Let me know if you know any other way to accomplish to change the spring boot embedded server default port.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.