자바 코드 스프링 전환
인프런 스프링 핵심 원리 - 기본편 수강 중
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과 동일
[참조] 인프런 스프링 핵심 원리 - 기본편 - 링크
끝!