@Bean
이나 XML의 <bean>
등을 통해서 설정 정보에 직접 등록할 스프링 빈을 나열했다.컴포넌트 스캔
이라는 기능을 제공한다.@ComponentScan
public class AutoAppConfig {
}
컴포넌트스캔은 @Component
어노테이션이 붙은 클래스를 스캔해서 스프링 빈으로 등록한다.
위의 AutoAppConfig
안에 의존관계 설정에 관한 내용이 아무것도 없다.
이전에는 @Bean
으로 직접 설정했지만 이제는 @Autowired
를 이용해 클래스안에서 의존관계 주입을 해결해야 한다.
public class OrderServiceImpl implements OrderService{
private final MemberRepository memberRepository;
private final DiscountPolicy discountPolicy;
// @Autowired 의존관계를 자동으로 주입받는다.
@Autowired
public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
this.memberRepository = memberRepository;
this.discountPolicy = discountPolicy;
}
생성자에 @Autowired
를 지정하면 스프링컨테이너가 자동으로 해당 스프링빈을 찾아서 주입한다.
@Component
@Controller
@Service
@Repository
@Configuration
@Component
를 포함하고 있다