Spring Boot: How to change the application port?
Introduction
When using Spring Boot to create a web application, the default port used by the embedded HTTP server is 8080.
This is a sensible default, but you might want to change it.
In this quickie, I'll show you how to change the default port.
How to change Spring Boot HTTP port using property files
The easiest way to change the default port is by setting the server.port property in the application.properties file.
This file is usually located in the src/main/resources directory.
The following example sets the port to 8082:
server.port=8082The same procedure can be used to change the port using the application.yml file:
server:
port: 8082How to change Spring Boot HTTP port using environment variables
You can also change the port by setting the SERVER_PORT environment variable.
The following example sets the port to 8082 in bash:
SERVER_PORT=8082 java -jar myapp.jarHow to change Spring Boot HTTP port at runtime
You can change the port at runtime by setting the server.port property as a system property.
For example, if you want to change the port to 8082, you can use the following command to run your application:
java -Dserver.port=8082 -jar myapp.jarYou can achieve the same result by using the --server.port command line argument:
java -jar myapp.jar --server.port=8082How to change Spring Boot HTTP port programmatically
Finally, you can change the port programmatically by using the WebServerFactoryCustomizer interface.
However, I don't recommend this approach since the HTTP server port is part of the application configuration and shouldn't be hardcoded in the source code.
import org.springframework.boot.web.server.WebServerFactoryCustomizer;
import org.springframework.boot.web.servlet.server.ConfigurableServletWebServerFactory;
import org.springframework.stereotype.Component;
@Component
public class HttpPortCustomizer
implements WebServerFactoryCustomizer<ConfigurableServletWebServerFactory> {
@Override
public void customize(ConfigurableServletWebServerFactory server) {
server.setPort(8082);
}
}References
You can find more information about the server.port property in the following links:
