인프라 빈 구성 정보와 분리
기존에 TomcatWebServerFactory, DispatcherServlet 구성정보를 등록하는 Config를 위 구조로 변경해보도록 하겠습니다.
package com.tobyspring.tobyspringboot;
import com.tobyspring.config.MySpringBootApplication;
import org.springframework.boot.SpringApplication;
@MySpringBootApplication
public class TobyspringbootApplication {
public static void main(String[] args) {
SpringApplication.run(TobyspringbootApplication.class, args);
}
}
package com.tobyspring.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Configuration
@ComponentScan
@EnableMyAutoConfiguration
public @interface MySpringBootApplication { }
package com.tobyspring.config;
import com.tobyspring.config.autoconfig.DispatcherServletConfig;
import com.tobyspring.config.autoconfig.TomcatWebserverConfig;
import org.springframework.context.annotation.Import;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Import({DispatcherServletConfig.class, TomcatWebserverConfig.class})
public @interface EnableMyAutoConfiguration { }
package com.tobyspring.config.autoconfig;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class TomcatWebserverConfig {
@Bean
public ServletWebServerFactory servletWebServerFactory() {
return new TomcatServletWebServerFactory();
}
}
package com.tobyspring.config.autoconfig;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.DispatcherServlet;
@Configuration
public class DispatcherServletConfig {
@Bean
public DispatcherServlet dispatcherServlet() {
return new DispatcherServlet();
}
}
'Spring > 인프런 토비의 Spring Boot' 카테고리의 다른 글
섹션 6-7 [자동 구성 기반 애플리케이션] 자동 구성 애노테이션 적용 (0) | 2024.06.14 |
---|---|
섹션 6-6 [자동 구성 기반 애플리케이션] 자동 구성 정보 파일 분리 (1) | 2024.06.14 |
섹션 6-3 [자동 구성 기반 애플리케이션] 빈 오브젝트의 역할과 구분 (0) | 2024.06.14 |
섹션 6-2 [자동 구성 기반 애플리케이션] 합성 애노테이션 적용 (0) | 2024.06.14 |
섹션 6-1 [자동 구성 기반 애플리케이션] 메타 애노테이션과 합성 애노테이션 (0) | 2024.06.14 |