6-1. 컴포넌트 스캔과 의존관계 자동 주입 ~ 6-3
지금 까지는 직접 등록할 스프링 빈을 적어서 나열하였다. -> 실무에서는 빈이 수백개라 귀찮다. -> 컴포넌트 스캔( 설정정보가 없어도 자동으로 빈으로 등록 )
@Component를 붙여준다. 근데 설정정보에 아무것도 없어서 어디에 뭘 주입해야할지 어떻게 알지?
-> 그래서 생성자에 @Autowired 붙임. ( 의존관계 자동 주입 )
-> 스프링이 파라미터에 있는 MemberRepository 타입에 맞는 빈을 찾아와서 자동으로 주입해줌.
-> 컴포넌트 스캔을 쓰면 @Autowired를 쓰게됨 ( 빈의 의존관계를 수동으로 설정못하므로 )
잘 뜬 걸 볼 수 있다. 로그 찾아보면 컴포넌트스캔으로 뜬 빈들이라고 써있음.
뭐가 어디에 주입 되었나도 나옴.
1. 스프링이 모든 클래스를 뒤져서 @Component 붙은 거 다 빈으로 등록한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
2. 스프링 빈의 기본 이름은 클래스명을 사용하되 맨 앞글자만 소문자를 사용한다.
이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!
이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!이 사진 미친듯이 중요!!!!!!!!!!!!!!!!!!!!!
스프링이 MemberServiceImpl을 생성하면서 파라미터의 타입으로 조회하여 같은게 있으면 주입 ( 자식타입포함 ) -> 같은타입 여러개 있으면 충돌 -> 뒤에서 설명
생성자의 파라미터를 다 찾아서 다 주입해줌
----------------------------------------------------------------- 6-2. 탐색 위치와 기본 스캔 대상
지가 정할 수 있긴함. ( 안정하면 모든 라이브러리, 자바코드들 다뒤짐 -> 낭비 )
클래스로 지정하면 그 클래스의 패키지를 탐색
근데 아무 설정도 안하면~~~
@ComponentScan 붙인 클래스의 패키지를 다뒤짐.
원래 어노테이션은 메타정보
------------------------------------------------------ 6-3. 필터
MyIncludeComponent와 MyExcludeComponent가 달라지는 시점. ->
여기서 includeFilters=, excludeFilters=