컴포넌트 스캔과 의존관계 자동 주입 시작하기

@ComponentScan

컴포넌트 스캔 사용하기 위한 어노테이션

@Component 어노테이션이 붙은 클래스를 스캔해 스프링 빈으로 등록


/* 
   기존 AppConfig과는 다르게 @Bean으로 등록한 클래스 1도 없음
   컴포넌트 스캔 사용시 @Configuration 붙은 설정 정보도 자동 등록됨
   따라서 excludeFilters를 이용해 스캔 대상에서 제외시킴

   실무에선 설정정보를 컴포넌트 스캔 대상에서 제외하지 않지만
   강의에선 예제코드를 최대한 남기고 유지하기 위함..

*/
@Configuration
@ComponentScan(
        excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
public class AutoAppConfig {

}

@Autowired

자동 의존관계 주입, 생성자 부분에 작성

@Component를 사용함으로써 빈 설정 및 의존관계 주입이 없어짐

⇒ 클래스 안에서 @Autowired 사용으로 이 부분 해결

/* 일부 예시 */
@Autowired
    public MemberServiceImpl(MemberRepository memberRepository) {
        this.memberRepository = memberRepository;
    }

@ComponentScan

@ComponentScan