
아래의 조건을 만족하는 형태의 클래스를 의미한다.
spring IoC컨테이너가 관리하는 java 객체를 뜻한다.
◾ spring IoC가 관리하는 객체란?
spring에 의해 생성되고, 라이프 사이클을 수행하고, 의존성 주입이 일어나는 객체를 말한다. 즉, spring에게 제어권을 넘긴 객체를 의미한다.
◾ bean 객체 등록하는 법
bean의 이름은 camel case로 등록된다.
생성자 주입, 메서드 주입, 필드 주입의 방법이 있지만 주로 생성자 주입을 사용한다
왜? 객체의 불변성을 지켜줄 수 있기 때문에
1. AutoWired
//생성자 주입 방법
private fianl MemoRepository memoRepository;
@AutoWired //달아줄 수도 있지만 하나의 생성자만 있다면 생략가능하다.
public MemoService(MemoRepository memoRepository){
this.memoRepository = memoRepository;
}
→ 적용조건 > IoC에서 관리되는 Bean클래스에서만 가능하다
2. RequiredArgsConstructor
//Lombok 사용하는 방법
@RequiredArgsConstructor
public class MemoService{
private fianl MemoRepository memoRepository;
}
◾ bean 등록 과정
@Component 어노테이션을 달아두면 @ComponentScan이라는 어노테이션에 의해 모든 클래스를 스캔하여 bean객체로 등록해준다.
@Controller @Service @Repository > 각 역할을 하고 있는 계층의 어노테이션은 @Component를 포함하고 있기 때문에 Bean객체에 등록된다.