목차

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

Component Scan을 사용한 AppConfig

package hello.core;

import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;

@Configuration //설정 정보임을 나타내는 어노테이션
[**@ComponentScan**](<https://nankisu.tistory.com/4>) ( //자동으로 @component가 붙은 스프링 빈을 끌어오는 기능
        //기존의 수동으로 스프링 빈을 등록해주던 AppConfig도 @component가 붙어있기 때문에 자동 목록에서 제외해줘야 함
        excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class)
)
public class AutoAppConfig {
    
}

참고

🔽 기존의 AppConfig

@Configuration
public class AppConfig {
    @Bean
    public MemberService memberService(){
        return  new MemberServiceImpl(memberRepository());
    }
    @Bean
    public OrderService orderService(){
        return new OrderServiceImpl(memberRepository(), discountPolicy());

    }
    @Bean
    public MemoryMemberRepository memberRepository() {
        return new MemoryMemberRepository();
    }

    @Bean
    public DiscountPolicy discountPolicy(){
//        return new FIxDiscountPolicy();
        return new RateDiscountPolicy();
    }
}