type
status
date
slug
summary
tags
category
icon
password

정의

💡
스프링 IoC에서 인스턴스화 하고 조립 및 구성, 관리하는 객체 즉, 스프링 IoC 컨테이너에 의해 관리되는 자바 객체
 

Spring IoC Container

💡
프로그램의 실행 흐름이나 객체의 생명 주기를 개발자가 제어하는 것이 아닌 외부에서 관리해주는 것
 
Container는 아래의 메타데이터로 작성할 수 있음
  1. XML
  1. Java Config
  1. Componenet Scan
 
XML
 
Java Config
 
Componenet Scan
 

Bean Scope

객체의 인스턴스가 오직 1개만 생성되는 것을 보장하는 디자인 패턴

종류

  • request
    • HTTP 요청이 들어오고 나갈 때까지 유지되는 스코프로 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리됨
  • session
    • HTTP 세션과 동일한 생명주기를 가지는 스코프
  • application
    • 서블릿 컨텍스트와 동일한 생명 주기를 가지는 스코프
  • websocket
    • 웹 소켓과 동일한 생명 주기를 가지는 스코프
 
 

Default Scope

따로 설정해둔 것이 없으면 빈이 싱글톤의 범위로 등록
notion image
 
주의점
  • 객체의 상태를 유지하게 설계하면 안됨. → stateless 해야 함
  • 특정 클라이언트에 의존적이거나 값을 변경할 수 있는 필드가 있으면 안됨
  • 가급적 읽기만 허용
 

Prototype Scope

stateful한 빈을 생성할 수 있음
클라이언트가 스프링 빈을 요구할 때마다 빈 생성, 의존성 주입, 반환을 수행함
notion image

Life-Cycle

Garbage CollectorCORS
Loading...