Bean이란?
- Spring Ioc 컨테이너가 관리하는 Java 객체를 의미
- 간단하게 Spring에서는 원활한 개발을 위해 Java 객체 생성, 관리해주는데 이 때 생성, 관리되는 객체를 Bean이라 부른다
Ioc
- Inversion of Control, 제어의 역전이라고 부른다
- Ioc는 객체의 생성을 특별한 관리 위임 주체에게 맡기는 것을 의미
- Spring Bean이 없는 경우 모든 작업(객체들을 생성, 조작해 프로그램 흐름을 결정하는 것)을 사용자가 제어해야 한다
- Ioc를 이용하면 생성 및 관리는 Ioc에게 위탁, 사용자가 해당 객체를 사용만 할 수 있는 환경을 조성할 수 있다
설정 방법
- @, Annotation이용
- ex)
@Controller
: Controller 에너테이션 안에 @Component
에너테이션 내장 되어 있다
- 여기서
@Component
는 Spring이 Bean으로 등록할 수 있게끔 지정해주는 역할
- Bean Configuration 직접 등록
@Configuration
이용해 class 선언하고 @Bean
이용해 메서드 정의해서 등록
참고
- 1번 방법으로 했을 때 패키지 구조와 관련해 Bean 등록이 되지 않는 문제 발생할 수 있다
- 이 때
@ComponentScan
이용해 Controller, Service 등 Bean으로 등록해 이용할 객체들 위치한 패키지 인위적으로 지정해 등록시켜 사용할 수 있다\
ref