스프링 Bean이란
개발자가 자바 코드로 직접 관리하는 객체가 아닌, 스프링 컨테이너가 자동으로 관리하는 객체!
예시 : 스프링 컨테이너가 관리하는 객체
@Service
- 이 어노테이션이 붙은 클래스는 스프링 컨테이너에 의해 관리됨
- service 는 repository에 의존성이 있음 이건 스프링 컨테이너가 주입해줌
- 스프링 컨테이너는 객체를 생성할 때 의존성 자동으로 주입하고 객체의 생명주기 관리
스프링컨테이너를 사용하는 이유?
- 서로 의존성이 있는 객체들을 직접 생성하지 않고, 컨테이너가 필요한거 자동으로 해줌
- 생명주기 자동으로 관리해줘서 코드가 깔끔하고 유지보수 쉬움
- 스프링컨테이너 통해 의존성 주입하면 테스트할 때 가짜객체(mock)를 주입하는 등의 작업이 훨 쉬움
- 객체간 의존성 유연하게 설정 가능
@Bean 사용하는 이유
- 외부 라이브러리에서 제공하는 클래스들을 스프링 컨테이너에 등록할 때 사용. 외부 라이브러리의 클래스는 스프링 컴포넌트 스캔이 적용되지 않기 때문이다
- 특정 초기화 과정이 필요할 때
'기술면접준비' 카테고리의 다른 글
TCP/UDP (0) | 2024.10.15 |
---|---|
CORS 가 무엇인지, 문제 해결은 어떻게? (0) | 2024.10.12 |
내가 이해한 배포개발환경 vs 로컬개발환경 (2) | 2024.10.11 |
github action을 이용한 CICD 파이프라인 자동화 (0) | 2024.10.10 |
Docker와 컨테이너, 오케스트레이션? (0) | 2024.10.10 |