"์ค๋ณต ๋ฑ๋ก๊ณผ ์ถฉ๋" ๊ฐ์์์ ๊ฐ์ฌ๋๊ณผ ๋ค๋ฅธ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.
@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(); } } @Configuration @ComponentScan( basePackages = "drj9812.spring.member", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { @Bean(name = "memoryMemberRepository") MemberRepository memberRepository() { return new MemoryMemberRepository(); } } @Component public class MemoryMemberRepository implements MemberRepository { private static Map store = new HashMap(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member selectByMemberId(Long memberId) { return store.get(memberId); } } @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }์ ์ฝ๋์
๋๋ค.