@configuration과 @bean 그리고 의존성 주입(추가로 @postConstruct)

박의진·2025년 7월 2일

@configuration은 설정 클래스임을 명시하는 어노테이션을 의미하며 여기서 빈생성이 가능하다. @bean 으로 프로젝트 전체에서 사용할 빈 등록가능

  • like firebaseconfigclass, webclientConfigClass 같은것들
  • 싱글톤 형태로 인스턴스를 프로젝트 전체에 하나만 생성할 경우에도 사용하는 것 같음

@Bean은 스프링 컨테이너가 객체를 생성하면 거기서 @Bean으로 등록된다.

  • 인스턴스 생성 그 자체
  • 컨테이너 생성 시작 시 (초기화 단계)에 빈이 등록
  • 객체 생성을 목적으로 한다

의존성 주입은 빈생성 후에 다른 클래스에 의존성을 주입을 하기 위한 것

  • 생성자 또는 필드 등을 통해 필요한 객체를 넣어주는 과정
  • 객체간의 관계에 집중한다.
  • @Autowired: 필드, 생성자, 세터 등에 의존성 자동 주입 (비권장, 생성자 주입 선호)
  • @RequiredArgsConstructor : lombok라이브러리를 사용한 것으로 final 필드 기반 생성자 자동 생성

postConstruct는 는 의존성 주입 후 초기화 진행히 필요할 때 사용하는 것으로 의존성이 주입된 이후에 초기화가 필요할 때 사용한다 .

✅ 먼저 Spring Bean의 생성과 초기화 전체 흐름 정리

[1] 객체 생성 (Bean 인스턴스 생성)
[2] 의존성 주입 (필드/생성자/세터 등)
[3] 초기화 (초기 상태 설정, @PostConstruct 등)
[4] 사용
[5] 소멸 (Context 종료 시)

profile
주니어 백엔드 개발자의 개발 log💻

0개의 댓글