스프링부트에서 배너(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로 하면 더 이상 배너는 출력되지 않습니다.
그리고 위 내용을 적용시키기 귀찮으면 resources 디렉토리에 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 : 하하하");
}
};
}
}
빈 객체로 등록하고나면스프링 부트의 객체들이 준비가 되고나면 아래 정의한 내용이 바로 동작 합니다.
단순히 출력을 할 수 있으며, 특정 행위를 정의 할 수도 있습니다.
반응형
'Spring framework > Spring boot' 카테고리의 다른 글
remove Springboot jsessionid , 스프링부트 jsession 제거 (0) | 2019.12.03 |
---|---|
Spring boot 마이바티스, Spring boot mybatis, 스프링부트 mybatis 적용 (2) | 2019.12.02 |
스프링부트 타일즈, Springboot tiles, Spring boot 타일즈 적용 (3) | 2019.12.02 |
Spring boot 인터셉터, Spring boot Interceptor, 스프링부트 인터셉터 (0) | 2019.12.02 |
STS git 추가, STS 깃 연동, STS 리눅스 git 서버 연동 (0) | 2019.11.12 |
* 위 에니메이션은 Html의 캔버스(canvas)기반으로 동작하는 기능 입니다. Html 캔버스 튜토리얼 도 한번 살펴보세요~ :)
* 직접 만든 Html 캔버스 애니메이션 도 한번 살펴보세요~ :)
댓글