티스토리 뷰

스프링 부트의 가장 기본적인 특징을 살펴보도록 하자.

 

1. Banner 설정

Spring Application을 띄울 때 항상 등장하는 Banner를 직접 Customizing 할 수 있다.

 

바로 이 친구

직접 코딩을 통해 만드는 방법도 있지만... 가장 간단한 방법만 소개하고 넘어가도록 한다.

 

resources 디렉토리 안에 Banner.txt | gif | jpg | png 파일을 넣어주면 된다. 

txt 파일안에 직접 문자를 입력하면 해당하는 문자열이 Application이 뜰 때 등장한다. 

또한, gif / jpg / png 파일과 같이 이미지 파일도 등록할 수 있다.

그렇게 중요한 부분은 아니기 때문에 그 외 간단한 것들만 살펴보고 넘어가도록 하자.. 

 

  • Banner.txt에 사용할 수 있는 변수가 존재한다. 아래 예시 외에는 여기 를 참고

    ex) Spring Boot 버전 : ${spring-boot.version} 

  • Resources 말고 다른 곳에 Banner file을 두고 싶다면 application.properties에 spring.banner.location 을 명시

 

2. Application Events 와 Listeners

Spring 에서 기본적으로 제공해주는 Event들의 시점을 트리거로 하여 호출할 수 있도록 해준다.

여기서 Event는 app이 시작될 때 / Context를 만들었을 때 / 구동이 다 됐을 때 / 정상 작동할 때 / 실패했을 때 등등.. 을 의미한다.

 

Listener를 만들 때는 ApplicationListener 인터페이스를 상속받고 어떤 Event의 Listener를 만들지 Type을 명시해주어야 한다. 이 Type과 관련된 정보는 여기 에서 볼 수 있다.

 

지금은 간단하게 Application이 시작될 때를 시점으로 하는 Listener를 구현해 보도록 하겠다.

 

@Component
public class Listener implements ApplicationListener<ApplicationStartingEvent> {
    @Override
    public void onApplicationEvent(ApplicationStartingEvent applicationStartingEvent) {
        System.out.println("Application is Starting");
    }
}

 

여기서 한 가지 주의할 점이 있는데, 구현한 Listener는 Application이 단순하게 시작될 때를 기점으로 하기 때문에 Application Context가 만들어지기 이전의 시점이다.

즉, Bean등록이 이루어지지 않기 때문에 Listener가 동작을 하지 않는다. @Component 가 무색해지는 순간이다.

이런 경우에는 직접 등록을 해주어야 한다..

 

@SpringBootApplication
public class Application {
	
    public static void main (String[] args) {
    	SpringApplication app = new SpringApplication(Application.class);
        app.addListener(new Listener());
        app.run(args);
    }
}    

 

위에서 생성한 Listener 객체를 addListener를 통해 직접 등록해주면 된다. 

이외의 Event들은 @Component 를 통해 Bean등록이 이루어지니 편하게 사용하면 되시겠다.

 

3. Arguments

Spring Boot에서는 JVM Option이 아니라 Applicaion Arguments를 사용한다.

즉, " -- " 로 들어오는 Arguments만을 받는다.

 

4. ApplicationRunner

springboot app이 모두 올라왔을 때 자동으로 실행되는 Bean을 만들고 싶은 경우에 사용한다.

CommandLineRunner도 동일한 기능을 하지만 ApplicationRunner에서는 ApplicationArguments Type으로 메서드를 만들어 주기 때문에 Code를 작성할 때 더 편리하다.

 

구현은 아래와 같이 할 수 있다. 

 

@Component
@Order(1)
public class SampleRunner implements ApplicationRunner {

    @Override
    public void run(ApplicationArguments args) throws Exception {
        System.out.println(args.getOptionNames("foo"));
        System.out.println(args.containsOption("bar"));
    }
}

@ 출처

 

 스프링 부트 개념과 활용 - inflearn, by 백기선님

 

 

 

 

댓글
링크
최근에 올라온 글
Total
Today
Yesterday