본문 바로가기

분류 전체보기68

섹션 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.
섹션 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-3 [자동 구성 기반 애플리케이션] 빈 오브젝트의 역할과 구분 빈 오브젝트의 역할과 구분스프링 컨테이너가 관리하는 빈은 크게 두가지로 구분해볼 수 있는데 컨테이너 인프라 스트럭처 빈, 애플리케이션 빈으로 구분할 수 있습니다.애플리케이션빈은 개발자가 어떤 빈을 사용하겠다고 명시적으로 구성정보를 제시한 빈 이라고 합니다. 컨테이너 인프라 스트럭처 빈은 스프링컨테이너 자신이거나 스프링 컨테이너가 기능을 확장하며 추가해온 부분들을 빈으로 등록하여 사용하는 빈이라고 합니다. 애플리케이션 빈은 또 두가지로 구분할 수 있는데 애플리케이션 로직빈, 애플리케이션 인프라스트럭처 빈으로 구분할 수 있습니다. 애플리케이션 로직 빈은 애플리케이션에 기능, 비즈니스 로직, 도메인 로직들을 담고있는 빈이라고 할 수 있으며 애플리케이션 인프라 스트럭처 빈은 대부분 기술과 관련되어있는데 대부분 .. 2024. 6. 14.