728x90
반응형
본 포스팅은 학습용으로, 김영한 님의 강의를 바탕으로 복습용도로 작성되었습니다.
스프링 컨테이너 생성
스프링 컨테이너 생성 과정
ApplicationContext applicationContext =
new AnnotationConfigApplicationContext(AppConfig.class);
- ApplicationContext
- 스프링 컨테이너
- 인터페이스
- 스프링 컨테이너
- XML 기반
- 애노테이션 기반의 자바 설정 클래스로 만들 수 있다.
- AnnotationConfigApplicationContext
- ApplicationContext 인터페이스를 구현한 구현체
1. 스프링 컨테이너 생성
- 스프링 컨테이너를 생성 시, 구성 정보를 지정해주어야 한다.
- AppConfig.class
@Configuration //애노테이션 기반의 자바 설정 클래스로 스프링 컨테이너
public class AppConfig {
@Bean
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public static MemberRepository memberRepository() {
return new MemoryMemberRepository(); //나중에 DB리포지토리를 쓴다면 이 부분만 바꾸면 된다.
}
@Bean
public OrderSerivce orderService(){
return new OrderServiceImpl(memberRepository(), discountPolicy());
}
@Bean
public DiscountPolicy discountPolicy() {
//return new FixDiscountPolicy();
//문제1. 할인정책을 정률방식으로바꿔보시오.
return new RateDiscountPolicy();
}
}
2. 스프링 빈 등록
- 스프링 컨테이너는 파라미터로 넘어온 AppConfig.class를 사용해서 스프링 빈을 등록한다.
- 설정클래스임을 명시하기 위한 @Configuration 어노테이션을 사용한다.
빈 이름
- 빈 이름은 메서드 이름을 사용한다
- 빈 이름을 직접 부여할 수도 있다.
@Bean(name = "memberService2")
빈 이름은 항상 다른 이름을 부여해야 한다. 같은 이름을 부여한다면, 다른 빈이 무시되거나, 기존 빈을 덮어버리거나 설정에 따라 오류가 발생한다.
3. 스프링 빈 의존관계 설정 - 준비
4. 스프링 빈 의존관계 설정 - 완료
- 스프링 컨테이너는 설정 정보를 참고해서 의존관계를 주입(DI)한다.
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] 싱글톤 컨테이너 (0) | 2023.02.08 |
---|---|
[Spring] 컨테이너에 등록된 빈 조회 (0) | 2023.02.08 |
[Spring] Spring의 핵심 및 목적 (0) | 2023.02.07 |
[Spring] 객체지향 프로그래밍과 5원칙 (0) | 2023.02.07 |
[Spring] Spring MVC 란? (1) | 2023.02.04 |