
@Configuration // 설정 정보로 쓰겠다.
public class AppConfig {
@Bean // 스프링 빈으로 등록하겠다.
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
@Bean
public OrderService orderService() {
return new OrderServiceImpl(memberRepository(), discountPolicy());
}
@Bean
public DiscountPolicy discountPolicy() {
return new RateDiscountPolicy();
}
}
// AppConfig를 통해서 스프링 컨테이너에 빈을 등록한다.
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
// 해당 빈을 가져온다.
MemberService memberService = applicationContext.getBean("memberService", MemberService.class);



