bean 4

스프링 의존성 주입(Dependency Injection, DI) 완전 정복

스프링의 핵심 철학은 IoC(Inversion of Control) 입니다. 이 철학을 구현하는 가장 대표적인 기술이 바로 의존성 주입(Dependency Injection) 입니다. 1. 의존성 주입이란?의존성(Dependency): 객체가 다른 객체를 사용할 때, 이 관계를 ‘의존성’이라고 합니다.주입(Injection): 필요한 의존 객체를 직접 생성하지 않고 외부에서 넣어주는 것입니다.전통적인 방식 (의존 객체를 직접 생성)public class OrderService { private OrderRepository orderRepository = new OrderRepository(); // 직접 생성}DI 적용 방식 (외부에서 주입)public class OrderService { p..

Back_End/Spring 2025.05.21

Spring Boot(스프링부트) Bean 생명주기 관리

Bean이란 무엇인가?Spring Framework에서 Bean이란, Spring IoC(Container)가 관리하는 객체를 의미합니다. 개발자가 직접 new로 객체를 생성하는 것이 아니라, 스프링 컨테이너가 대신 객체를 생성하고, 의존성을 주입하며, 필요 시 제거까지 담당합니다.즉, Bean의 생명주기란 Spring이 해당 객체(Bean)를 어떻게 생성하고, 어떻게 초기화하고, 어떻게 소멸시키는지를 뜻합니다.Bean 생명주기 흐름 요약아래는 Spring Bean의 기본 생명주기 단계입니다. 객체 생성 → 의존성 주입 → 초기화 → 사용 → 소멸 이 과정을 좀 더 세부적으로 나누면 다음과 같습니다:객체 생성 (Instantiation)의존성 주입 (Dependency Injection)Aware 인터..

Back_End/Spring 2025.05.14

스프링 @Bean, @Configuration, @Component 이란?

1. 스프링 빈(Bean)이란?스프링 프레임워크에서 빈(Bean) 은 스프링 컨테이너가 관리하는 객체를 의미합니다. 일반적인 Java 객체와 동일하지만, 스프링의 IoC(Inversion of Control) 컨테이너에 의해 생성 및 관리됩니다.🔹 스프링 빈의 특징스프링 컨테이너가 직접 객체를 생성 및 관리싱글톤(Singleton)으로 관리 (기본 설정 시)DI(Dependency Injection, 의존성 주입) 지원필요할 때 스프링 컨테이너에서 빈을 가져와 사용 가능2. @Bean 어노테이션@Bean은 개발자가 직접 제어할 수 있는 방법으로 스프링 빈을 등록할 때 사용됩니다. 주로 @Configuration과 함께 사용되며, 메서드에 붙여서 해당 메서드가 반환하는 객체를 스프링 컨테이너가 관리하는 ..

Back_End/Spring 2025.03.31

Spring BeanNameGenerator 구현

프로젝트 초기 설정 중 BeanNameGenerator를 구현한 로직을 살펴보겠습니다.   Spring 프레임워크는 DI(Dependency Injection) 컨테이너에서 Bean 이름을 생성할 때 기본적으로 AnnotationBeanNameGenerator를 사용합니다. 하지만 특정 조건에 따라 커스텀한 방식으로 Bean 이름을 생성하고 싶다면 BeanNameGenerator 인터페이스를 구현하여 사용할 수 있습니다.이 글에서는 Spring의 BeanNameGenerator를 구현한 SetBeanNameGenerator를 소개하며, 이를 통해 Bean 이름 생성 과정을 제어하는 방법을 알아보겠습니다.1. SetBeanNameGenerator의 동작 개요SetBeanNameGenerator 클래스는 다..