Spring Framework/Spring IoC(44)
-
Annotation-based Container Configuration
Spring은 어노테이션 기반 구성에 대한 포괄적인 지원을 제공하며, 어노테이션을 클래스, 메서드 또는 필드 선언에 사용하여 컴포넌트 클래스 자체의 메타데이터로 작동합니다. 예를 들어, AutowiredAnnotationBeanPostProcessor 예제에서 언급한 것처럼, Spring은 BeanPostProcessor를 어노테이션과 함께 사용하여 핵심 IOC 컨테이너가 특정 어노테이션을 인식할 수 있도록 합니다. 예를 들어, @Autowired 어노테이션은 Autowiring Collaborators에서 설명된 것과 동일한 기능을 제공하지만, 더 세밀한 제어와 더 넓은 적용 범위를 가집니다. 또한, Spring은 @PostConstruct와 @PreDestroy와 같은 JSR-250 어노테이션에 대한..
2024.11.14 -
Bean Scopes
Bean ScopesBeanDefintion를 생성할 때, 해당 BeanDefintion에 의해 정의된 클래스의 실제 인스턴스를 생성하기 위한 레시피를 만듭니다. BeanDefintion가 레시피라는 생각은 중요한데, 이는 클래스와 마찬가지로 하나의 레시피에서 많은 객체 인스턴스를 생성할 수 있다는 것을 의미합니다.특정 BeanDefintion에서 생성된 객체에 주입될 다양한 의존성과 구성 값뿐만 아니라, 특정 BeanDefintion에서 생성된 객체의 범위(Scope)를 제어할 수도 있습니다. 이 접근 방식은 강력하고 유연한데, 이는 자바 클래스 레벨에서 객체의 범위를 구체화하는 대신 구성을 통해 생성하는 객체의 범위를 선택할 수 있기 때문입니다. 빈은 여러 scope 중 하나로 정의될 수 있습니다. ..
2024.11.14 -
Method Injection
🌱 Spring Method Injection 정리Spring에서는 빈의 생명주기가 다를 때 발생하는 문제를 해결하기 위해 "메서드 주입(Method Injection)" 기능을 제공합니다.일반적인 의존성 주입(Dependency Injection) 방식으로 해결할 수 없는 경우 Lookup Method Injection, Arbitrary Method Replacement 등의 기법을 활용할 수 있습니다.1️⃣ Method Injection이란?📌 기본 개념🔹 싱글톤 빈이 프로토타입 빈을 참조할 때, 새로운 인스턴스를 주입받아야 하는 경우 발생하는 문제를 해결하는 방법🔹 Spring 컨테이너가 런타임에 동적으로 메서드를 오버라이드하여, 새로운 프로토타입 빈을 반환하도록 구현🔹 Spring이 제..
2024.11.14 -
Using depends-on, Lazy-initialized Beans, Autowiring Collaborators
🌱 Spring Bean Management: depends-on, Lazy-initialized Beans, AutowiringSpring에서는 빈(Bean)의 초기화 순서, 지연 로딩(Lazy Initialization), 자동 주입(Autowiring) 을 통해 효율적인 객체 생성 및 관리 를 수행할 수 있습니다.이번 정리에서는 이러한 개념들을 명확히 설명하고, 활용 방법을 소개하겠습니다.1️⃣ Using @DependsOn: 빈 초기화 순서 제어🔹 @DependsOn이란?특정 빈이 생성되기 전에 먼저 초기화해야 할 빈을 지정하는 어노테이션빈 간의 의존성을 명시적으로 정의하여, 초기화 순서를 강제할 수 있음다수의 빈을 순차적으로 초기화 가능✅ 예제: @DependsOn을 활용한 빈 초기화 순서 ..
2024.11.14 -
Dependencies
일반적인 엔터프라이즈 애플리케이션은 단일 객체(또는 스프링 용어로는 빈)로 구성되지 않습니다. 가장 단순한 애플리케이션조차도 몇 가지 객체가 함께 작동하여 최종 사용자가 일관된 애플리케이션으로 인식할 수 있도록 합니다. 다음 섹션에서는 독립적으로 정의된 여러 빈 정의에서 출발하여 객체들이 목표를 달성하기 위해 협력하는 완성된 애플리케이션으로 전환하는 방법을 설명합니다. Section SummaryDependency InjectionDependencies and Configuration in DetailUsing depends-on, Lazy-initialized Beans, Autowiring CollaboratorsMethod Injection
2024.11.14 -
Dependency Injection
의존성 주입(DI) 은 객체가 자신이 필요로 하는 의존성(즉, 함께 동작할 다른 객체들)을 다음과 같은 방식으로만 정의하는 과정입니다:생성자 아규먼트(Constructor arguments)팩토리 메서드의 아규먼트(Factory method arguments)객체가 생성된 후 설정되는 프로퍼티(Properties)이후 Spring IoC 컨테이너는 해당 빈(Bean)을 생성할 때 이 의존성들을 주입(inject)합니다.이러한 과정은 본질적으로 역제어(Inversion of Control, IoC) 의 개념을 따릅니다.이름 그대로, 의존성의 생성이나 위치를 스스로 제어하는 것이 아니라, 컨테이너가 대신 제어하게 되는 구조입니다.예전에는 객체가 필요한 의존성을 직접 생성하거나, Service Locator ..
2024.06.11