[Spring boot] 스프링 부트 애플리케이션 실행

Song_Song·2021년 8월 22일
0

정적 메소드 호출 방식

이클립스에서 스프링 부트 프로젝트를 새로 띄우면 일반적으로 아래와 같이 정적 메소드 호출 방식으로 애플리케이션을 실행하게 돼있다.
정적 메소드는 인스턴스를 실행하지 않고 실행하는 방식으로 클래스만으로 메소드를 호출할 수 있다는 장점이 있다.

하지만 이는 상태를 가지지 않고 메소드만 가지고 있는 구조로 객체지향에서 벗어난 개념이다.

@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		// 정적 메소드 호출 방식
		SpringApplication.run(Application.class, args); 
	}

}



객체 생성 방식

아래는 객체 지향적 방식으로 SpringApplication 객체를 생성하여 run()를 실행한 방법이다.
이는 더 객체 지향적인 방식이며, WebApplicationType을 임의로 설정할 수 있다.

  • WebApplicationType
    1. SERVLER : Default. 기존 스프링 MVC 기반으로 웹 애플리케이션 구동
    2. NONE : 자바 애플리케이션으로 실행. 톰캣 구동 X (포트 충돌 문제 X)
    3. REACTIVE : 비동키 처리와 논 블로킹 입출력을 지원하는 WebFlux를 적용할 때 사용( 스프링 5.0에 추가)
@SpringBootApplication
public class Application {

	public static void main(String[] args) {
		// 객체 생성 방식
		var app = new SpringApplication(Application.class);
		app.setWebApplicationType(WebApplicationType.SERVLET); 
		app.run(args);
	}
}
profile
성장을 위한 정리 블로그

0개의 댓글