Back-End/JavaSpring

Bean과 Spring IoC 컨테이너

stars_one 2025. 3. 31. 02:53

 

 

 

Bean이란, 스프링이 관리하는 객체를 뜻한다.

Spring IoC 컨테이너는 Bean을 모아둔 컨테이너이다

 

DI를 사용하기 위해서는 객체 생성을 해야하는데,

Spring 프레임워크가 필요한 객체를 생성하고 관리하는 역할을 대신 해준다.

 

Spring IoC 컨테이너에 Bean을 어떻게 등록하고 사용하는지 알아보자

 


 

@Component

‘Bean’으로 등록하고자하는 클래스 위에 @Component 어노테이션을 붙이면

Spring 서버가 실행되면, IoC컨테이너에 Bean을 저장해준다

 

 

그러면, 이 사진처럼 bean(콩)이미지가 뜨는데,

Spring IoC 컨테이너에서 관리하는 Bean으로 등록되었다는 것을 알 수 있다.

 

@Configuration
@ComponentScan(basePackages = "com.sparta.memo")
class BeanConfig { ... }

 

Spring 서버가 뜰 때 @ComponentScan에 설정해 준 packages 위치와 하위 packages 들을 전부 확인하여

@Component가 설정된 클래스들을 ‘Bean’으로 등록 해준다.

 

하지만, Bean으로 등록해주는 것은

@SpringBootApplication에 의해 default 설정 되어있다.

 

그러면 Bean을 사용하기 위해서는 

@Autowired를 사용하면 된다

이 어노테이션은 

Spring IoC 컨테이너에 의해 관리되는 클래스에만 사용가능하고

 

또한 당연한 말이지만 Spring IoC 컨테이너에 의해 관리되는 ‘Bean’객체만 DI에 사용될 수 있다.

 


 

3 Layer Annotation

Spring 3 Layer Annotation은

Controller, Service, Repository의 역할로 구분된 클래스들을

‘Bean’으로 등록할 때 해당 ‘Bean’ 클래스의 역할을 명시하기위해 사용된다.

 

@Controller, @RestController

@Service

@Repository

 

 

3 Layer Annotation은 모두 위와같이,

@Component가 추가되어있다.

728x90