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 라이센스를 따릅니다.