Cambiar puerto por defecto en Spring Boot

cambiar puerto en Spring Boot

cambiar puerto en Spring Boot


Spring Boot nos proporciona muchas configuraciones por defecto con las que podemos empezar a desarrollar fácilmente. Pero en algunas ocasiones necesitamos modificar alguna, por lo que en este artículo veremos como cambiar puerto por defecto en Spring Boot.

En esta entrada veremos las diferentes maneras de poder cambiar el puerto de nuestra aplicación.

Fichero de propiedades

La manera más rápida y fácil de poder cambiar el puerto por defecto (8080), en Spring Boot es haciendo uso del application.yml o application.properties

Para poder realizar ese cambio necesitamos especificar en la propiedad server.port el número de puerto que queremos por ejemplo si trabajamos con application.properties:

server.port=8090

o si trabajamos con application.yml:

server:
  port: 8090

Esta propiedad será cargada en el arranque del Spring Boot y será el puerto a utilizar.

Cambiar puerto por defecto en Spring Boot con Configuración programática

Otra de las maneras en la que podemos cambiar el puerto de una aplicación en Spring Boot es modificando la configuración de nuestro embedded server. Para ello haremos uso de la clase WebServerFactoryCustomizer.

Para poder realizar la modificación del puerto de manera programática lo haremos en dos pasos:

@SpringBootApplication
public class CustomPortApplication {
    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(CustomApplication.class);
        app.setDefaultProperties(Collections
          .singletonMap("server.port", "8090"));
        app.run(args);
    }
}

En el código anterior hemos añadido la propiedad server.port con su valor y a continuación vamos a sobreescribir una clase en la que le indicamos el puerto:

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

Hemos implementado WebServerFactoryCustomizer, para establecer el puerto que queremos en este caso el 8090.

Línea de Comandos

Otra manera muy práctica de poder cambiar el puerto de nuestra aplicación Spring Boot es por línea de comandos a través de java command. Para ello tan solo hay que pasar el server.port por parámetro, tenemos dos maneras diferentes de hacerlo:

java -jar -Dserver.port=8090 refactorizando-port.jar
java -jar refactorizando-port.jar --server.port=8090

Conocer puerto de arranque

El puerto con el que arranca la aplicación se muestra en los logs que muestra Spring al finalizar el arranque. De esta manera podrás asegurarte del puerto con el que arranca tu aplicación.

Puerto de arranque en Spring Boot | Cambiar puerto por defecto en Spring Boot
Puerto de arranque en Spring Boot

Orden de preferencia

Hay que tener en cuenta cuando se aplican cambios en las configuraciones por defecto el orden de ejecución y su prioridad en Spring Boot.

  • configuración del servidor embebido.
  • línea de comandos.
  • fichero de propiedades.
  • @SpringBootApplication  configuración.

Conclusión

En esta entrada, Cambiar puerto por defecto en Spring Boot, hemos visto como realizar una modificación por defecto en Spring Boot. Para ello hemos visto 3 maneras diferentes aunque sin duda, la más fácil y directa es modificar en el fichero de propiedades.

Si necesitas más información puedes escribirnos un comentario o un correo electrónico a refactorizando.web@gmail.com y te ayudaremos encantados!


No te olvides de seguirnos en nuestras redes sociales Facebook o Twitter para estar actualizado.


3 pensamientos sobre “Cambiar puerto por defecto en Spring Boot

  1. EXCELENTE!!!
    Me estaba volviendo loco!!!
    Debo tener mal la JRE … no se pero no me dejaba cambiarlo por el archivo de configuracion, y no me parece practico estar haciendo desde consola.
    Solucion mas «limpia», «clara» y creo que «profesional»

    MUCHAS GRACIAS!!!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *