자바 코드 스프링 전환

인프런 스프링 핵심 원리 - 기본편 수강 중

AppConfig 스프링 기반으로 변경

@Configuration
public class AppConfig {

    @Bean
    public MemberService memberService() {
        return new MemberServiceImpl(memberRepository());
    }
    ...
}
  • 각 메서드에 어노테이션 추가
    • @Configuration: AppConfig에 설정 구성
    • @Bean: 스프링 컨테이너에 스프링 빈으로 등록

MemberApp 스프링 컨테이너 적용

public class MemberApp {
    public static void main(String[] args) {
//        AppConfig appConfig = new AppConfig();
//        MemberService memberService = appConfig.memberService();
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
        MemberService memberService = applicationContext.getBean("memberService", MemberService.class);
        
        ...

    }
}
  • ApplicationContext라는 스프링 컨테이너 사용해서 DI, 객체 관리
  • AnnotationConfigApplicationContext: AppConfig에 있는 환경 설정 정보를 가지고 스프링이 어노테이션을 찾아 객체 생성 및 관리
  • @Bean이 붙은 모든 메서드 호출해서 반환된 객체를 스프링 컨테이너에 등록
  • applicationContext.getBean("memberService", MemberService.class): @Bean이 붙은 메서드 중 memerService 이름을 갖고 MemberService 타입인 객체를 가져온다는 의미

OrderApp 스프링 컨테이너 적용

public class OrderApp {
    public static void main(String[] args) {

//        AppConfig appConfig = new AppConfig();
//        MemberService memberService = appConfig.memberService();
//        OrderService orderService = appConfig.orderService();

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

    }
}

MemberApp과 동일

[참조] 인프런 스프링 핵심 원리 - 기본편 - 링크

끝!