@Configuration의 정의
따로 빈 정의용 클래스를 하나 생성해서 빈을 정의하고 의존성을 설정하는 방식
이 어노테이션이 붙은 클래스 내에서
@Bean
어노테이션이 붙은 메서드를 통해 Bean을 정의하고, 컨테이너에 등록할 수 있습니다.
사용 예시
@Configuration
public class AppConfig {
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
@Bean
public DiscountPolicy discountPolicy() {
return new RateDiscountPolicy();
}
@Bean
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public OrderService orderService() {
return new OrderServiceImpl(memberRepository(), discountPolicy());
}
}
코드 설명
- memberRepository, discoutPolicy, memberService, orderService 총 4개의 Bean이 생성됩니다.
- memberService는 memberRepository를, orderService는 memberRepository, discountPolicy를 의존성 주입(DI)합니다.