[TIL] 컴포넌트 스캔의 역할

SSOYEONG·2022년 4월 8일
0

스프링 기본

목록 보기
5/7
post-thumbnail

@ComponentScan

  • 지금까지 자바 코드의 @Bean이나 XML의 등을 통해 설정 정보에 Spring Bean을 등록했다. -> 반복 및 누락 이슈

  • Spring은 설정 정보가 없어도 @ComponentScan을 통해 자동으로 Spring Bean을 등록한다.

  • 의존관계는 @Autowired를 통해 자동으로 주입한다.

    @Component
    public class MemberServiceImpl implements MemberService {
    	private final MemberRepository memberRepository;
    
    	@Autowired
    	public MemberServiceImpl(MemberRepository memberRepository) {
    		this.memberRepository = memberRepository;
    	}
    }

Component Scan과 의존관계 자동 주입의 동작

  • @ComponentScan@Component가 붙은 모든 class를 Spring Bean으로 등록한다.
  • 빈 이름 기본 전략: MemberServiceImpl 클래스 -> memberServiceImpl
  • 빈 이름 직접 지정: @Component("memberService2")

  • 생성자에 @Autowired를 지정하면, Spring Container가 자동으로 해당 Spring Bean을 찾아서 주입한다.
  • 기본 조회 전략은 타입이 같은 Bean을 찾아서 주입한다.
    getBean(MemberRepository.class)와 같은 방식

Reference
인프런 - 김영한님의 [스프링 핵심 원리 - 기본편] 수강 후 강의노트를 바탕으로 작성한 글입니다.

profile
Übermensch

0개의 댓글