@Componentscan 활용

😎·2022년 10월 11일
0

spring

목록 보기
1/2
post-thumbnail

스프링 컨테이너에 빈 등록하는 방법으로

Componentscan 어노테이션 활용 방법이 있다

excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)

위의 옵션을 통해 스캔에 포함하지 않을 부분을 지정할 수 있다.

(위의 코드는 Configuration 어노테이션이 붙은 클래스를 제외함)

추가적으로 basePackages 옵션은 탐색할 패키지의 시작위치를 지정할 수 있다. 지정패키지 아래 하위패키지 모두 탐색
지정 안할시 디폴트 값은 @ComponentScan 붙인 설정 정보 클래스의 패키지 위치부터 탐색한다

컴포넌트스캔 사용중 @Autowired 어노테이션을 활용하여 의존관계 자동 주입이 가능하다

상단의 이미지에서 MemberServiceImpl은 생성자 인자값으로 MemberRepository를 받는데

스프링 컨테이너가 자동으로 해당클래스(MemberRepository) 타입으로 등록된 빈을 조회하여 주입하여 준다

memmoryMemberRepository가 MemberRepository의 자식타입으로 서칭됨

//getBean(MemberRepository.class)와 동일하다고 이해해도 된다.

생성자 파라미터가 많아도 모두 주입하여 준다!

컴포넌트 스캔의 기본 대상은 아래와 같다

@Component //컴포넌트 스캔에서 사용
@Controller //스프링 MVC 컨트롤러에서 사용
@Service // 스프링 비즈니스 로직에서 사용
@Repository //스프링 데이터 접근 계층에서 사용
@Configutation //스프링 설정 정보에서 사용

profile
개발 블로그

0개의 댓글