[Spring Boot] 컴포넌트 스캔 / Bean

2025. 2. 4. 18:12· BE/Spring Boot
목차
  1. 컴포넌트 스캔이란?
  2. 컴포넌트 스캔으로 객체가 생성되는 어노테이션
  3. Bean이란?
  4. Bean의 Scope
728x90

컴포넌트 스캔이란?

스프링 부트는 @SpringBootApplication 이 붙어있는 클래스가 있는 패키지 내부에 있는 클래스들을 스캔한다.

 

스프링 부트 프로젝트를 생성하면 Application 클래스에 자동으로 @SpringBootApplication 이 붙어있다.

@SpringBootApplication
public class Day01Application {
public static void main(String[] args) {
SpringApplication.run(Day01Application.class, args);
}
}

컴포넌트 스캔으로 객체가 생성되는 어노테이션

@Controller, @RestController, @Service, @Repository, @Configuration, @Bean

 

@Component 어노테이션이 달려있으면 컴포넌트 스캔으로 객체가 생성된다.

위의 6개의 어노테이션은 모두 @Component가 달려있다.

 

 

위의 파일 구조에서  @SpringBootApplication이 붙어있는 Day01Application 클래스가 있기 때문에

day01 패키지 안에 있는 Test01Controller는 객체가 생성된다.

하지만 day02 패키지 안에 있는 Test02Controller는 객체가 생성되지 않는다.

 

 


Bean이란?

컴포넌트 스캔으로 객체가 생성되면 생성된 객체를 Bean이라고 부른다.

 

싱글톤 디자인 패턴으로 생성되어 외부(스프링 컨테이너)에 저장된다.

 


Bean의 Scope

기본적으로 스프링 컨테이너는 빈을 생성할 때 싱글톤 스코프를 기본으로 사용하지만, 다른 스코프도 설정할 수 있다.

 

싱글톤 스코프

스프링 컨테이너가 시작될 때 함께 생성되고, 스프링 컨테이너가 종료될 때까지 유지된다.

 

프로토타입 스코프

스프링 컨테이너에서 빈을 조회할 때 생성되고 초기화 메서드도 실행된다.

스프링 컨테이너는 프로토타입 빈을 생성하고, 의존관계 주입, 초기화까지만 처리한다.

클라이언트에게 빈을 반환한 이후에는 생성된 프로토타입 빈을 관리하지 않는다.

프로토타입 빈을 관리할 책임은 클라이언트에게 있기 때문에 종료 콜백 메서드가 호출되지 않는다.

 

 

728x90
저작자표시 비영리 변경금지 (새창열림)

'BE > Spring Boot' 카테고리의 다른 글

[Spring Boot] 서버 -> 클라이언트로 데이터 전달 (ResponseEntity)  (1) 2025.02.05
[Spring Boot] 클라이언트 -> 서버로 데이터 전달 (RequestMapping)  (0) 2025.02.05
[Spring Boot] IntelliJ에서 스프링 부트 프로젝트 생성 / 초기 설정  (0) 2025.02.05
[Spring Boot] Controller와 RestController 차이  (0) 2025.02.05
[Spring Boot] Spring, Spring Boot란? / 제어 역전(IoC), 의존성 주입(DI)  (1) 2025.02.04
  1. 컴포넌트 스캔이란?
  2. 컴포넌트 스캔으로 객체가 생성되는 어노테이션
  3. Bean이란?
  4. Bean의 Scope
'BE/Spring Boot' 카테고리의 다른 글
  • [Spring Boot] 클라이언트 -> 서버로 데이터 전달 (RequestMapping)
  • [Spring Boot] IntelliJ에서 스프링 부트 프로젝트 생성 / 초기 설정
  • [Spring Boot] Controller와 RestController 차이
  • [Spring Boot] Spring, Spring Boot란? / 제어 역전(IoC), 의존성 주입(DI)
셰욘
셰욘
셰욘
seiyeon
셰욘
전체
오늘
어제
  • 분류 전체보기 (176)
    • 알고리즘 (46)
      • 프로그래머스 (2)
      • 백준 (37)
      • 문제 유형 (7)
    • CS (41)
      • Linux (6)
      • DB (15)
      • 자료구조 (3)
      • OOP (2)
      • 아키텍처 (0)
    • BE (42)
      • Java (9)
      • Spring Boot (32)
    • FE (6)
      • Next.js (1)
      • JavaScript (5)
      • Vue.js (7)
      • Web (0)
    • 배포 (5)
    • 회고 (19)
      • BEYOND SW 캠프 (19)
    • 기타 (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 블로그 관리

공지사항

인기 글

태그

  • 트리
  • dfs
  • fe
  • 백트래킹
  • web
  • cs
  • 자료구조
  • DP
  • 그리디
  • vue
  • js
  • 리눅스
  • be
  • db
  • AWS
  • 구현
  • 알고리즘
  • 티스토리챌린지
  • spring boot
  • 실습
  • 오블완
  • 우선순위 큐
  • 프로그래머스
  • Gateway
  • 네트워크
  • Java
  • bfs
  • 회고
  • 주간회고
  • 백준

최근 댓글

최근 글

250x250
hELLO · Designed By 정상우.v4.2.1
셰욘
[Spring Boot] 컴포넌트 스캔 / Bean
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.