Spring Framework/Spring IoC(44)
-
@AliasFor
“어노테이션의 특정 엘리먼트(속성)에 별칭(alias)이 왜 필요하냐?”그냥 하나의 속성으로 만들면 되지, 왜 굳이 다른 이름으로 같은 걸 연결하는 이유는? ✅ 1. 사용자가 익숙한 방식으로 쓰도록 하기 위해 (API 유연성)예: @RequestMapping Spring에서는 아래 두 가지 방식 모두 허용합니다:@RequestMapping("/hello") // value를 생략한 축약형@RequestMapping(path = "/hello") // 명시적으로 path 속성 지정 그런데 사실 value()와 path()는 같은 뜻입니다. 그래서 Spring에서는 이렇게 선언해놨습니다:@AliasFor("path")String value() default "";@Alias..
2025.05.26 -
static @Bean 팩토리 메서드란
Spring의 자바 기반 구성 메타데이터(Java-based configuration metadata)에서 @Bean 어노테이션이 붙은 팩토리 메서드(factory method)가 static으로 선언된다는 것은, Spring이 그 메서드를 실행할 때 해당 구성 클래스(@Configuration)를 인스턴스화하지 않고도 호출할 수 있다는 의미입니다. 📌 핵심 정리: static @Bean 팩토리 메서드란?@Configurationpublic class AppConfig { @Bean public static MyService myService() { return new MyService(); // static 팩토리 메서드 }}이처럼 @Bean 메서드에 static을 붙이면..
2025.05.19 -
GenericBeanDefinition
🧩 원문 요약GenericBeanDefinition은 선언적 빈 정의를 위한 "원스톱 샵(one-stop shop)" 클래스이며, 동적으로 부모-자식 관계 설정이 가능합니다.주로 XML 기반 구성이나 설정 단계에서 유연하게 빈을 정의할 수 있도록 사용되며, 병합 이후에는 RootBeanDefinition이 실제로 사용됩니다. 📘 문장별 상세 해석 및 분석 📌 문장 1:GenericBeanDefinition is a one-stop shop for declarative bean definition purposes.✅ 해석GenericBeanDefinition은 선언적 방식(declarative)의 빈 정의에 필요한 기능들을 한 곳에서 처리할 수 있는 범용(bean definition) 도구 클래스입니..
2025.05.19 -
RootBeanDefinition
Spring의 org.springframework.beans.factory.support.RootBeanDefinition 클래스에 대한 설명은, Spring의 빈 정의 메타데이터 처리 과정에서 핵심적인 역할을 담당하는 클래스를 이해하는 데 매우 중요합니다. 아래에서는 해당 내용을 구조적으로 분석하고, Java 기반 구성 메타데이터(Java Config) 관점에서 실제 사용과 연결해 상세히 해석해드리겠습니다. 🔍 핵심 개념 요약RootBeanDefinition은 최종 병합된 형태의 Bean 정의를 나타냅니다. 상속 관계에 따라 여러 BeanDefinition이 존재할 수 있는데, 이들을 병합해서 런타임에 사용할 수 있는 하나의 정의로 만든 것이 바로 RootBeanDefinition입니다. 📘 문장별..
2025.05.19 -
DefaultListableBeanFactory의 확장성이란?
DefaultListableBeanFactory의 확장성과 BeanPostProcessor/BeanFactoryPostProcessor의 관계를 설명해 드리겠습니다.📌 1️⃣ DefaultListableBeanFactory의 확장성이란?✔ DefaultListableBeanFactory는 스프링의 핵심 Bean Factory로, 빈을 생성, 관리, 검색, 조작할 수 있는 다양한 기능을 제공합니다.✔ 확장성이 뛰어나다는 의미는 단순히 정적인 빈 관리가 아니라, 실행 중 동적으로 빈을 조작할 수 있는 다양한 확장 포인트를 제공한다는 뜻입니다.✔ 대표적인 확장 포인트가 바로 BeanPostProcessor와 BeanFactoryPostProcessor 입니다.📌 즉, DefaultListableBeanFa..
2025.03.06 -
BeanPostProcessor / BeanFactoryPostProcessor
📌 BeanPostProcessor 및 BeanFactoryPostProcessor 완전 정리 🚀DefaultListableBeanFactory는 스프링의 핵심 빈 팩토리 구현체로 확장성이 뛰어나며, BeanPostProcessor와 BeanFactoryPostProcessor를 통해 빈의 생성, 초기화, 및 라이프사이클을 조작할 수 있습니다. 📌 1️⃣ DefaultListableBeanFactory의 확장성 개요스프링은 빈의 생성, 초기화, 의존성 주입, 소멸 등 다양한 단계에서 개입할 수 있는 확장 포인트를 제공합니다.특히 BeanPostProcessor와 BeanFactoryPostProcessor는 스프링 컨테이너 내부에서 자동으로 실행되며,빈이 생성되거나 컨테이너가 초기화될 때 추가적인 ..
2025.03.06