23.2 배너를 내가 원하는 대로 바꾸기

Springboot를 기동할때 콘솔을 보면 “Spring” 텍스트 이모티콘을 보게된다. 이것을 “Springboot banner”라고 합니다.

시작할때 출력되는 배너를 클래스 패스상에 banner.txt파일을 추가하거나 spring.banner.location 프라퍼티에 그 파일의 위치를 설정해서 바꿀 수 있다. 만약 파일의 인코딩이 UTF-8이 아니면 spring.banner.charset 설정을 해야 한다. 텍스트 파일 이외에도 banner.gif, banner.jpg 또는 banner.png 이미지 파일을 클래스 피스상에 위치하거나 spring.banner.image.location 프라퍼티 설정을 이용해 추가할 수있다. 이미지들은 ASCII art로 변환되어 text 배너로 출력된다.

banner.txt 파일안에 다음과 같은 플레이스홀더를 사용할 수있다.

표 23.1. 배너에서 사용하는 변수들

변수

설명

${application.version}

MAINFEST.MF 파일에 선언된 어플리케이션의 버전. 예를 들어 Implementation-Version: 1.01.0으로 출력된다.

${application.formatted-version}

MANIFEST>MF에 선언된 어플리케이션의 버전번호를 보여주기 위한 형식(소괄호로 감싸고 v를 접두어로 붙인다)으로 보여준다. 예 : (v1.0)

${spring-boot.version}

사용하고 있는 스프링 버전. 예: 2.0.0.BUILD-SNAPSHOT

${spring-boot.formatted-version}

사용하고 있는 스프링 버전을 보여주기 위한 형식(소괄호로 감싸고 v를 접두어로 붙인다.)으로 보여준다. 예 : (v2.0.0.BUILD-SNAPSHOT)

${Ansi.NAME}(또는 ${AnsiColor.NAME}, ${AnsiBackground.NAME}, ${AnsiStyle.NAME})

${application.title}

MANIFEST.MF에 선언된 어플리케이션 제목. 예를 들어 Implementation-Title: MyAppMyApp으로 출력된다.

SpringApplication.setBanner(…) 메소드를 이용해 프로그램적으로 Banner를 생성할 수있다. org.springframework.boot.Banner 인터페이스를 상속받고 printBanner() 메소드를 구현하면된다.

또한 spring.main.banner-mode 프라퍼티를 사용해 배너가 System.out(console)로 출력되거나, 설정되 있는 logger(log)로 전달되거나 또는 생산되지 않도록(off) 설정할 수있다.

출력된 배너는 springBootBanner 란 이름의 싱글톤 빈으로 등록된다.

YAML 은 offfalse를 의미 하므로 어플리케이션에서 배너를 사용 안하려면 따옴표를 추가해야만 한다.

     spring:
              main:
                      banner-mode: "off"

Last updated