본문 바로가기

개발일지

개발일지 20 - Spring Bean

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 등)