image.png

SpringBoot에서 만들어준 것과 같은 환경으로 작성하기 → @MySpringBootApplication

Spring initializer로 만든 코드처럼 변경하기 - 2가지 작업이 필요

1. 합성 애너테이션 적용

합성 애너테이션 생성 : MySpringBootApplication

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Configuration
@ComponentScan
public @interface MySpringBootApplication {
}

합성 애너테이션 적용 후 : HellobootApplication

@MySpringBootApplication
public class HellobootApplication {
	@Bean
	public ServletWebServerFactory servletContainer() {
		return new TomcatServletWebServerFactory();
	}

	@Bean
	public DispatcherServlet dispatcherServlet() {
		return new DispatcherServlet();
	}

	public static void main(String[] args) {
		SpringApplication.run(HellobootApplication.class, args);
	}
}

2. Factory Method 추출

구성정보를 담고있는 클래스 작성 : config

@Configuration
public class Config {
    @Bean
    public ServletWebServerFactory servletContainer() {
        return new TomcatServletWebServerFactory();
    }

    @Bean
    public DispatcherServlet dispatcherServlet() {
        return new DispatcherServlet();
    }
}