본문 바로가기
블로그 이미지

방문해 주셔서 감사합니다! 항상 행복하세요!

  
   - 문의사항은 메일 또는 댓글로 언제든 연락주세요.
   - "해줘","답 내놔" 같은 질문은 답변드리지 않습니다.
   - 메일주소 : lts06069@naver.com


Spring framework/Spring boot

스프링부트 배너, Springboot banner, 스프링부트 웰컴 메시지 관리

야근없는 행복한 삶을 위해 ~
by 마샤와 곰 2019. 12. 2.

 

스프링부트에서 배너(banner) 메시지를 관리하는 방법 입니다.

기본으로 스프링부트를 만들면 메인메소드는 아래처럼 되어 있습니다.

//..생략

@SpringBootApplication
@ServletComponentScan
public class 어플리케이션이름 extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(어플리케이션이름.class, args);
    }
}

 

그리고 실행하면 아래사진처럼 배너가 출력되며 스프링부트 앱이 실행 됩니다.

요런거 많이들 보셨쥬?

 

보기 싫거나 변경이 필요하면 SpringApplication 클래스를 활용해서 환경설정을 바꾸어 주면 됩니다.

끄는(off, 제거)법은 클래스를 아래처럼 수정하면 됩니다.

import org.springframework.boot.Banner.Mode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class 클래스이름 extends SpringBootServletInitializer  {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(클래스이름.class);
        app.setBannerMode(Mode.CONSOLE);   //요 부분
        app.run(args);

}

 

요 부분이라고 보이는 곳이 바로 배너설정을 할 수 있는 부분 입니다.

해당 부분에서 Mode로 보이는 enum값은 자동완성기능을 살펴보면 3가지 정도로 사용가능 합니다.

Mode.OFF로 하면 더 이상 배너는 출력되지 않습니다.

OFF...OFF하면 꺼진다..

 

 

그리고 위 내용을 적용시키기 귀찮으면 resources 디렉토리에 banner.txt 파일을 만들어주면 됩니다.

banner.txt에 내가 원하는 내용을 적으면 그대로 출력 됩니다!

이런식으로 banner.txt를 만들고 공백을 입력하자.
이런식으로 원하는 내용을 출력 할 수도 있습니다!

 

 

앱 구동시 특정 행동을 정의하려면 ApplicationListener 클래스를 Bean 객체로 등록하여 사용하면 됩니다.

import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

import org.springframework.boot.Banner.Mode;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.context.ApplicationListener;
import org.springframework.context.annotation.Bean;
import org.springframework.context.event.ContextRefreshedEvent;

@SpringBootApplication
public class 어플리케이션 extends SpringBootServletInitializer  {

    public static void main(String[] args) {
        SpringApplication app = new SpringApplication(어플리케이션.class);
        app.setBannerMode(Mode.CONSOLE);  //배너끄기, 켜기
        app.run(args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(어플리케이션.class);
    }


    @Bean  //앱 구동 후 바로 동작
    public ApplicationListener<ContextRefreshedEvent> startupListener() {
        return new ApplicationListener<ContextRefreshedEvent>() {   
            public void onApplicationEvent(ContextRefreshedEvent event) {
                System.out.println(" - Start to listen : " + LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));
                System.out.println(" - Porject build : 하하하");
            }
        };
    }	
}

 

빈 객체로 등록하고나면스프링 부트의 객체들이 준비가 되고나면 아래 정의한 내용이 바로 동작 합니다.

단순히 출력을 할 수 있으며, 특정 행위를 정의 할 수도 있습니다.

요렇게 잘 나옵니다~

 

 

반응형
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)

댓글