@Scope("singleton")

@Scope("prototype") // 매번 새로운 bean 객체 할당

스크린샷 2025-09-05 오후 2.10.14.png

문제점) 싱글톤이기에 쇼핑카트가 공유되고 있음

→bean을 싱글톤이 아니게 설정할 수 있다.

Bean scope: Singleton vs Prototype

설정 포인트

@Bean public Product carpBread() { ... }  // 기본: singleton
@Bean public Product milk() { ... }       // 기본: singleton
@Bean public Product water() { ... }      // 기본: singleton

@Bean
@Scope("prototype")                       // 요청(getBean)마다 새 인스턴스
public ShoppingCart shoppingCart() { ... }

실행

ShoppingCart cart1 = context.getBean("shoppingCart", ShoppingCart.class);
ShoppingCart cart2 = context.getBean("shoppingCart", ShoppingCart.class);

스코프로 빈의 수명/개수를 결정한다.

빈 초기화/소멸: initMethod / destroyMethod