티스토리 뷰
스프링 부트의 가장 기본적인 특징을 살펴보도록 하자.
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 백기선님
'프로그래밍 > Spring Boot' 카테고리의 다른 글
[Spring Boot] 6. profile 설정 (0) | 2021.03.08 |
---|---|
[Spring Boot] 5. 외부 설정 (0) | 2021.03.07 |
[Spring Boot] 3. 자동 설정 구현(2) (0) | 2021.03.02 |
[Spring Boot] 2. 자동 설정 구현 (0) | 2021.03.01 |
[Spring Boot] 1. 자동 설정 (0) | 2021.03.01 |