포스트

06. 스프링 전환

06. 스프링 전환

스프링 전환

  • 기존의 AppConfig.java를 Spring으로 전환
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/**
 * 객체를 생성하고 주입해주는 역할을 해주는 클래스
 */
@Configuration
public class AppConfig {

    //생성자 주입
    @Bean
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }

    //생성자 주입
    @Bean
    public OrderService odOrderService() {
        return new OrderServiceImpl(memberRepository(), discountPolicy());
    }

    /**
     * 추후 저장소 변경시 이 코드만 변경하면 된다.
     */
    @Bean
    public MemberRepositoryImpl memberRepository() {
        return new MemberRepositoryImpl();
    }
    @Bean
    public DiscountPolicy discountPolicy() {
       // return new FixDiscountPolicy();
        return new RateDiscoutPolicy();
    }
}
  • 또한 기존의 AppCofing를 아래와 같이 변경한다.
1
2
3
4
5
6
7
//        AppConfig appConfig = new AppConfig();
//        MemberService memberService = appConfig.memberService();
//        OrderService orderService = appConfig.odOrderService();

        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        MemberService memberService = applicationContext.getBean("memberService", MemberService.class);
        OrderService orderService = applicationContext.getBean("orderService", OrderService.class);

바뀐 것

  • ApplicationContext 를 스프링 컨테이너라고 한다.
  • 직접 DI를 사용하는것이 아닌 이제 스프링 컨테이너를 사용
  • @Configuration 를 스프링 컨테이너는 설정정보로 사용한다.
    • 이렇게 스프링 컨테이너에 등록된 객체를 스프링 빈이라고 한다.
  • 스프링 컨테이너를 통해 필요한 빈 객체를 찾을 수 있다. getBean()
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

© 김규형. 일부 권리 보유

Powered by Jekyll with Chirpy theme