본문 바로가기

metaannotation5

섹션 6-8 [자동 구성 기반 애플리케이션] @Configuration과 proxybeanMethods @Configuration과 proxybeanMethods 일반적으로 팩토리 메소드를 통해 객체를 생성한다면 팩토리 메소드를 실행할때마다 새로운 객체가 생성되게 됩니다.static class MyConfig { Common common() { return new Common(); } Bean1 bean1() { return new Bean1(common()); } Bean2 bean2() { return new Bean2(common()); } } 일반적으로 위 처럼 MyConfig클래스를 만들고 bean1, bean2를 생성하는 팩토리 메소드를 가질때 Bea.. 2024. 6. 14.
섹션 6-7 [자동 구성 기반 애플리케이션] 자동 구성 애노테이션 적용 자동 구성 애노테이션 적용지금까지 구현한 구조 입니다. 이번 섹션에서는 간단하게 수정을 할 사항이 있습니다. @MyAutoConfiguration public class TomcatWebServerConfig { @Bean public ServletWebServerFactory servletWebServerFactory() { return new TomcatServletWebServerFactory(); } } @MyAutoConfiguration public class DispatcherServletConfig { @Bean public DispatcherServlet dispatcherServlet() { r.. 2024. 6. 14.
섹션 6-6 [자동 구성 기반 애플리케이션] 자동 구성 정보 파일 분리 자동 구성 정보 파일 분리package com.tobyspring.config; import org.springframework.boot.context.annotation.ImportCandidates; import org.springframework.context.annotation.DeferredImportSelector; import org.springframework.core.type.AnnotationMetadata; import java.util.stream.StreamSupport; /* DeferredImportSelector을 구현하여 config class의 이름을 selectImports 메소드를 통해 Sring배열로 리턴합니다. */ /* .. 2024. 6. 14.
섹션 6-4 [자동 구성 기반 애플리케이션] 인프라 빈 구성 정보와 분리 인프라 빈 구성 정보와 분리기존에 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(.. 2024. 6. 14.
섹션 6-2 [자동 구성 기반 애플리케이션] 합성 애노테이션 적용 합성 애노테이션 적용@SpringBootApplicationpublic class TobySpringBootApplication { public static void main(String[] args) { SpringApplication.run(TobySpringBootApplication.class, args); }}Spring Boot 프로젝트를 구성하면 우리가 직접 구현하지는 않는 서버를 구동시키는 Application class에서 사용되어지는 @SpringBootApplication 애노테이션을 직접 구현해보기 위해 합성 애노테이션으로 구성해보도록 하겠습니다. package com.tobyspring.tobyspringboot; import org.springframework.contex.. 2024. 6. 14.