Spring Framework/Spring IoC(44)
-
Bean Overview
📌 Bean Overview🔹 Spring IoC 컨테이너와 BeanSpring IoC 컨테이너는 한개 이상의 Bean을 관리하며,Bean은 구성 메타데이터(Configuration Metadata) 를 기반으로 생성됩니다.💡 Spring에서 Bean은 IoC 컨테이너가 생성, 조립 및 관리하는 객체를 의미합니다.➡️ Bean 정의는 내부적으로 BeanDefinition 객체로 변환되며, 다음과 같은 메타데이터를 포함합니다. 📍 BeanDefinition이 포함하는 주요 정보✔ 클래스 이름 → Bean의 실제 구현 클래스✔ 동작 설정 → Scope, 라이프사이클 콜백 등✔ 의존성 → 다른 Bean에 대한 참조 (Dependency)✔ 기타 설정 → 커넥션 풀 크기, 캐시 설정 등💡 Bean 정의..
2024.06.11 -
Using @Autowired
Spring의 @Autowired 및 JSR-330 @Inject 🚀Spring에서는 @Autowired를 사용하여 빈(Bean)의 의존성을 자동으로 주입할 수 있습니다.또한, JSR-330(javax.inject.Inject)을 사용하면 Spring에 종속되지 않고 표준적인 방식으로 DI(Dependency Injection)를 수행할 수도 있습니다. 📌 1️⃣ @Autowired 및 @Inject 개념과 주요 특징✅ Spring IoC 컨테이너가 적절한 빈을 찾아 자동으로 주입✅ 생성자, 필드, 세터, 일반 메서드에 적용 가능✅ 같은 타입의 빈이 여러 개 존재하면 충돌 발생 가능 → @Qualifier 또는 @Primary 사용✅ Spring 4.3+ 부터 생성자가 1개만 있는 경우 @Autowi..
2023.12.10 -
Dependencies and Configuration in Detail
📌 Spring Bean의 의존성(Dependencies) 및 상세 설정(Configuration) 정리🔹 1️⃣ 의존성(Dependency) 정의 방법Spring에서는 Bean의 속성이나 생성자 아규먼트를 설정할 때 다양한 방법으로 값을 지정할 수 있습니다.주요 방식은 다음과 같습니다.방식설명직접 값 지정 (Primitive, String 등)단순한 값(문자열, 숫자, boolean 등) 설정idref특정 Bean의 id를 안전하게 참조하는 방법ref다른 Bean을 참조하여 의존성 설정내부 Bean (Inner Bean)Bean 내부에서 직접 새로운 Bean을 정의컬렉션 (List, Set, Map, Properties)컬렉션 타입 속성 설정컬렉션 병합 (Merging)부모 Bean의 컬렉션을 자식..
2023.12.10 -
Introduction to the Spring IoC Container and Beans
🌱 Spring IoC Container와 Bean 소개Spring Framework는 자바 애플리케이션 개발에서 가장 널리 사용되는 프레임워크 중 하나입니다. 그 핵심에는 제어의 역전(Inversion of Control, IoC) 원칙을 구현한 IoC 컨테이너가 있습니다. 이 글에서는 Spring의 IoC 컨테이너와 Bean 개념에 대해 구체적으로 살펴보겠습니다. 🔁 Inversion of Control(IoC)란?IoC는 객체 간의 의존성 관리에 대한 제어 권한을 애플리케이션 코드가 아닌 컨테이너에게 위임하는 설계 원칙입니다.💡 전통적인 방식: 객체가 직접 다른 객체를 생성하거나 검색💡 IoC 방식: 컨테이너가 객체를 대신 생성하고 필요한 의존 객체를 주입 💉 IoC의 구체적인 구현: De..
2023.12.10 -
Fine-tuning Annotation-based Autowiring with @Primary or @Fallback
이 섹션에서는 “다중 후보 빈 중에서 특정 빈을 우선적으로 선택”해야 하는 상황에서 Spring이 제공하는 미세 조정(fine-tuning) 기능을 소개하고 있습니다.과거에는 주로 @Primary(스프링 3.0+)만 알려졌지만, Spring 6.2 버전부터는 새로운 @Fallback 애노테이션도 도입되어, 주입 우선순위를 더욱 세밀하게 제어할 수 있게 되었습니다. 1) 왜 필요한가?스프링에서 “타입에 따른 자동 주입”(@Autowired, @Inject 등)을 쓸 때, 같은 타입을 구현하는 여러 개의 Bean이 등록되어 있으면 스프링은 “어느 한 Bean”을 선택해야 합니다.만약 명시적인 지정(@Qualifier)이나 대표 Bean(@Primary) 지정이 없으면, NoUniqueBeanDefinitio..
2023.07.08 -
Dependency Injection of Spring Framework
스프링 프레임워크에서 의존성 주입을 수행하는 방법은 더 다양합니다.1. 생성자 주입 (Constructor Injection)설명: 생성자를 통해 의존성을 주입하는 가장 권장되는 방식입니다.예시:@Componentpublic class MyService { private final MyRepository repository; public MyService(MyRepository repository) { this.repository = repository; }}2. 세터 주입 (Setter Injection)설명: 세터 메서드를 통해 의존성을 주입하는 방식입니다.예시:@Componentpublic class MyService { private MyRepository rep..
2023.05.01