백정탈의 개발 블로그
Spring-컴포넌트 스캔 본문
컴포넌트 스캔
컴포넌트 스캔: 설정 정보 없이 자동으로 스프링을 빈을 등록하는 기능 예)@Component, @Controller, @Service, @Repository, @Configuration
@Autowired: 스프링 컨테이너가 자동으로 해당 스프링 빈을 찾아서 의존관계 주입한다.
@Component
public class MemberServiceImpl implements MemberService{}
@Component
public class OrderServiceImpl implements OrderService{}
@Component
public class MemoryMemberRepository implements MemoryMemberRepository{}
이런 형식으로 스프링 컨테이너에 있는 스프링 빈에 객체가 저장된다.
스프링 빈 저장소 | |
빈이름 | 빈 객체 |
meberServiceImpl | MemberServiceImpl@01 |
orderServiceImpl | OrderServiceImpl@02 |
memoryMemberRepository | MemoryMemberRepository@03 |
@Component
public class MemberServiceImpl implements MemberService{
private final MemberRepository memberREpository;
@Autowired
Public MemberServieceImpl(MemberRepository memberRepository){
this.memberRepository=memberRepository;
}
}
@Autiowired를 쓰면 스프링 빈에 있는 객체가 memoryMemberRepository 인스터스가 주입되어 사용할수 있다.
@ComponentScan(
basePackages = "hello.core",
}
basePackage디렉토리 위치를 지정해 탐색할 패키지의 시작 위치를 지정한다.
중복 등록과 충돌
수동 빈 등록vs 자동 빈등록일 경우 수동빈 등록을 우선시 한다.
'스프링' 카테고리의 다른 글
Spring-빈 생명주기 콜백 (0) | 2023.03.08 |
---|---|
Springs-의존관계 주입과 옵션처리 (0) | 2023.03.03 |
Spring-싱글톤 컨테이너 (0) | 2023.02.27 |
spring-스프링 컨테이너와 스프링 빈 (0) | 2023.02.27 |
Spring-DI (0) | 2023.02.22 |