Spring Boot series: cómo cambiar el banner de arranque

Hoy vuelvo con la serie sobre Spring Boot con un sencillo post, en este caso para explicar una pequeña característica que podemos configurar en nuestro proyecto Spring Boot, el banner que se muestra al arrancar.

Concepto:
Si habéis probado Spring Boot, habréis visto que al arrancar, en la consola, sale algo como esto:

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::        (v1.2.5.RELEASE)

...

Bueno, pues este banner que se nos muestra al arrancar, al igual que otras características de Spring Boot, se puede configurar y cambiar muy fácilmente. Vamos a ver un ejemplo de como poner lo que nosotros queramos o incluso desactivarlo.

Entorno usado:
Java JDK 1.8
Maven 3.2.5
Git 1.9.5
IDE Intellij 14.1.4 Ultimate version

Pasos:

1. Creamos un proyecto Spring Boot básico, con maven. En el pom añadimos las dependencias y plugin básicos de Spring Boot, y creamos nuestra clase básica con el método main para arrancar Spring Boot. Para esto podéis seguir los pasos de mi post de PoC con Spring Boot o usar la web de start.spring.io que os genera todo fácilmente.

2. Si probamos a arrancar nuestra aplicación (‘mvn spring-boot:run’), veremos el banner por defecto de Spring que comentaba antes.

3. Vamos a cambiarlo. Es tan sencillo como añadir un nuevo fichero a nuestra carpeta ‘resources’, llamado ‘banner.txt‘. El texto que pongamos en este txt es el que saldrá como banner. En este txt podemos hacer referencia a algunas variables como la versión de Spring Boot (más info aquí). Por ejemplo, podríamos tener un banner así:

  __   __ _   __  ____  _  _  ____  ____    ____   __   _  _       __   __ _   __  ____  _  _  ____  ____    ____  _  _   ___
 / _\ (  ( \ /  \(_  _)/ )( \(  __)(  _ \  (    \ / _\ ( \/ )_    / _\ (  ( \ /  \(_  _)/ )( \(  __)(  _ \  (  _ \/ )( \ / __)
/    \/    /(  O ) )(  ) __ ( ) _)  )   /   ) D (/    \ )  /( )  /    \/    /(  O ) )(  ) __ ( ) _)  )   /   ) _ () \/ (( (_ \
\_/\_/\_)__) \__/ (__) \_)(_/(____)(__\_)  (____/\_/\_/(__/ (/   \_/\_/\_)__) \__/ (__) \_)(_/(____)(__\_)  (____/\____/ \___/

-> Spring Boot version: ${spring-boot.formatted-version} <-

@edwise

Si queréis ponerle letras en plan ‘ascii’, hay webs como esta: http://patorjk.com/software/taag/ 😉

4. Si volvemos a arrancar nuestra aplicación, veremos nuestro nuevo banner:

  __   __ _   __  ____  _  _  ____  ____    ____   __   _  _       __   __ _   __  ____  _  _  ____  ____    ____  _  _   ___
 / _\ (  ( \ /  \(_  _)/ )( \(  __)(  _ \  (    \ / _\ ( \/ )_    / _\ (  ( \ /  \(_  _)/ )( \(  __)(  _ \  (  _ \/ )( \ / __)
/    \/    /(  O ) )(  ) __ ( ) _)  )   /   ) D (/    \ )  /( )  /    \/    /(  O ) )(  ) __ ( ) _)  )   /   ) _ () \/ (( (_ \
\_/\_/\_)__) \__/ (__) \_)(_/(____)(__\_)  (____/\_/\_/(__/ (/   \_/\_/\_)__) \__/ (__) \_)(_/(____)(__\_)  (____/\____/ \___/

-> Spring Boot version:  (v1.2.5.RELEASE) <-

@edwise

...

5. ¿Y si no queremos banner? Aparte de dejar el fichero banner.txt vacio, también podemos hacerlo programaticamente con la clase SpringApplication, en nuestra clase ‘main’:

package com.edwise.springbootseries.banner;

// imports...

@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(Application.class);
        app.setShowBanner(false);
        app.run(args);
    }
}

Con llamar al método ‘setShowBanner‘ con un ‘false’, desactivaríamos el banner.

Y hasta aquí este mini-post 🙂 Si queréis podéis descargaros el proyecto completo de mi github, proyecto springbootseries-banner.