본문 바로가기
Dev/Spring Boot

[스프링 부트 개념과 활용] SpringApplication 1부

by dev_jsk 2020. 8. 20.
728x90
반응형

SpringApplication

SpringApplication 인스턴스를 만들어 run을 하는 방법으로 구현하면 다양한 커스터마이징 기능을 사용가능

// Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
// 기본
// SpringApplication.run(Application.class, args);
// 인스턴스 생성하여 사용
SpringApplication app = new SpringApplication(Application.class);
app.run();
}
}

Log

기본 로그 레벨은 INFO, 디버그 모드 동작 시 DEBUG 레벨까지 로그 표시

 

FailureAnalyzer

Application Error 발생 시 Error Msg를 보기 쉽게 표시해주는 것

 

Banner

  • 배너 변경 희망 시 src/main/resourcebanner.txt 파일 생성 후 내용 작성
  • 다양한 배너 변수가 있다. 일부 변수는 MANIFAST.MF 파일이 생성이 되어야 적용 가능하다. (mvn package 필요)
  • txt 파일 이외에도 gif, jpg, png 파일도 사용 가능하다.
  • src/main/resource 이외 다른 곳에 배너 파일 위치 시 application.propertiesspring.banner.location(classpath 기준) 을 설정해야 한다.
  • 배너를 끄고 싶을 경우 SpringApplication.setBannerMode(Banner.Mode.OFF) 설정

코드 작성을 통한 배너 설정

// Application.java
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication app = new SpringApplication(Application.class);
app.setBanner(new Banner() {
@Override
public void printBanner(Environment environment, Class<?> sourceClass, PrintStream out) {
out.println("===============");
out.println("JSK Spring Boot");
out.println("===============");
}
});
app.run();
}
}

* 배너 파일과 코딩 설정을 둘 다 할 경우 파일에 설정된 배너 정보가 출력된다.

SpringApplicationBuilder

// Application.java
@SprintBootApplication
public class Application {
public static void main(String[] args) {
new SpringApplicationBuilder()
.sources(Application.class)
.run(args);
}
}

참고

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-spring-application

 

Spring Boot Features

Graceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, and Undertow) and with both reactive and Servlet-based web applications. It occurs as part of closing the application context and is performed in the earliest

docs.spring.io

 

728x90
반응형

댓글