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=8082
The same procedure can be used to change the port using the application.yml
file:
server:
port: 8082
How 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.jar
How 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.jar
You can achieve the same result by using the --server.port
command line argument:
java -jar myapp.jar --server.port=8082
How 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: