본문 바로가기
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
반응형

댓글