본문 바로가기

@Configuration5

섹션 7-1 [조건부 자동구성] 스타터와 Jetty 서버 구성 추가 스타터와 Jetty 서버 구성 추가plugins { id 'java' id 'org.springframework.boot' version '2.7.6' id 'io.spring.dependency-management' version '1.1.5' } group = 'com.tobyspring' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '11' } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-web' // Spr.. 2024. 6. 27.
섹션 6-5 [자동 구성 기반 애플리케이션] 동적인 자동 구성 정보 등록 동적인 자동 구성 정보 등록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.. 2024. 6. 15.
섹션 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.