이클립스에서 스프링 부트 프로젝트를 새로 띄우면 일반적으로 아래와 같이 정적 메소드 호출 방식으로 애플리케이션을 실행하게 돼있다.
정적 메소드는 인스턴스를 실행하지 않고 실행하는 방식으로 클래스만으로 메소드를 호출할 수 있다는 장점이 있다.
하지만 이는 상태를 가지지 않고 메소드만 가지고 있는 구조로 객체지향에서 벗어난 개념이다.
@SpringBootApplication public class Application { public static void main(String[] args) { // 정적 메소드 호출 방식 SpringApplication.run(Application.class, args); } }
아래는 객체 지향적 방식으로 SpringApplication 객체를 생성하여 run()를 실행한 방법이다.
이는 더 객체 지향적인 방식이며, WebApplicationType을 임의로 설정할 수 있다.
@SpringBootApplication public class Application { public static void main(String[] args) { // 객체 생성 방식 var app = new SpringApplication(Application.class); app.setWebApplicationType(WebApplicationType.SERVLET); app.run(args); } }