[Spring]Bean

yoon·2024년 3월 1일

spring-boot

목록 보기
16/41
post-thumbnail

✅ Bean객체

✔ java bean

아래의 조건을 만족하는 형태의 클래스를 의미한다.

  • 필드는 private로 구성되어 getter, setter를 통해서만 접근 가능
  • 전달 인자가 없는 생성자를 가짐

✔ spring bean

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객체로 등록해준다.


✔ 3-layer annotation

@Controller @Service @Repository > 각 역할을 하고 있는 계층의 어노테이션은 @Component를 포함하고 있기 때문에 Bean객체에 등록된다.

profile
하루하루 차근차근🌱

0개의 댓글