Spring Bean
Spring 에서 Bean이란 Spring이 관리하는 객체를 뜻하며 Spring IoC컨테이너에 Bean을 등록해 사용한다.
Bean의 등록 방법
Bean으로 등록하고자하는 클래스 위에 @Component 를 설정해준다.
@Component
public class 클래스 이름 {...}
Spring 서버가 뜰 때 @ComponentScan에 설정해 준 packages 위치와 하위 packages들을 확인하여 @Component가 설정된 클래스들을 Bean으로 들록해준다.
Bean의 사용 방법
@Autowired를 필드위, 메서드 위에 적어준다. 반드시 Spring IoC 컨테이너에 의해 관리되는 클래스에서만 사용이 가능하다.
ApplicationContext를 이용한 Bean을 수동으로 가져오는 방법
@Component
public class MemoService{
private final MemoRepository memoRepository;
public MemoService(ApplicationContext context) {
// 1.'Bean' 이름으로 가져오기
MemoRepository memoRepository = (MemoRepository) context.getBean("memoRepository");
// 2.'Bean' 클래스 형식으로 가져오기
// MemoRepository memoRepository = context.getBean(MemoRepository.class);
this.memoRepository = memoRepository;
}
...
}
@Component가 아닌 Spring 3 Layer Annotation을 사용해 클래스의 역할을 명시하며 Bean으로 등록이 가능하다(@Controller,@Service,@Repository 등)
'개발일지' 카테고리의 다른 글
개발일지 22 - 현재까지 자주 사용하고 있는 어노테이션 (0) | 2023.11.15 |
---|---|
개발일지 21 - JPA (0) | 2023.11.14 |
개발일지 19 - SOLID 원칙 (0) | 2023.11.13 |
개발일지 18 - 3계층 아키텍쳐 (0) | 2023.11.09 |
개발일지 17 - 접근제어자 (0) | 2023.11.08 |