- 기본 log 는 INFO 레벨 (vm 환경설정에서 -Ddebug 설정시 디버그 로깅으로 자동설정 확인가능 )
- 배너
- banner.txt || gif || jpg || png 실행시 배너 로고 바꾸는...
- application.properties > spring.banner.location 에서 설정가능(classpath 기준)
- 배너를 끄고 싶다면 SpringApplication 에 setBannerMode() 에 상수로 OFF 를 주면 됨
이벤트 기반으로 리스너를 등록하고 싶다
ApplicationListener 구현 클래스 사용
이 때 기준은 2가지
- Application 이 구동되기 전 : SpringApplication 에 메서드에 등록
- Application 이 구동된 후 : Spring Bean 으로 등록
@SpringBootApplication
@RestController
public class StudyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(StudyApplication.class);
application.addListeners(new ApplicationListener());
application.run(args);
}
}
public class ApplicationListener implements org.springframework.context.ApplicationListener<ApplicationStartingEvent> {
@Override
public void onApplicationEvent(ApplicationStartingEvent applicationStartingEvent) {
System.out.println("=============================");
System.out.println("Application is Starting");
System.out.println("=============================");
}
}
@SpringBootApplication
@RestController
public class StudyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(StudyApplication.class);
application.run(args);
}
}
@Component
public class ApplicationListener implements org.springframework.context.ApplicationListener<ApplicationStartedEvent> {
@Override
public void onApplicationEvent(ApplicationStartedEvent applicationStartedEvent) {
System.out.println("=============================");
System.out.println("Application is Started");
System.out.println("=============================");
}
}
Spring Application 의 WebApplicationType
@SpringBootApplication
@RestController
public class StudyApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(StudyApplication.class);
// Spring WebMvc , WebFlux 존재시 WebMvc 로 동작함!
application.setWebApplicationType(WebApplicationType.SERVLET); // webMvc 존재시 설정됨
application.setWebApplicationType(WebApplicationType.REACTIVE); // webFlux 존재시 설정됨
application.run(args);
}
}
Application Argument
-D : VM 옵션
-- : 프로그램 아규먼트
Application Argument 는 빈으로 등록되어 있으므로 가져다 쓰면된다.
@Component
@Order(0)
public class ApplicationRunner implements org.springframework.boot.ApplicationRunner {
// ApplicationRunner 의 재정의 메서드에는 ApplicationArgument 가 들어있다.
@Override
public void run(ApplicationArguments args) throws Exception {
Arrays.stream(args.getSourceArgs()).forEach(System.out::println); // VM 옵션과 프로그램 인자가 모두 출력됨
System.out.println(args.containsOption("foo"));// VM 옵션은 출력되지 못함.!
System.out.println(args.containsOption("bar"));
}
}
'SpringBoot' 카테고리의 다른 글
Profile (0) | 2020.10.04 |
---|---|
외부설정 (0) | 2020.10.03 |
독립적으로 실행가능한 JAR (0) | 2020.10.03 |
내장 웹 서버 (0) | 2020.10.02 |
자동 설정 구현.2 (0) | 2020.10.02 |