TIL

178일차(모험 87일차) - 스프링 컨테이너 생성

haedal-uni 2022. 3. 11. 22:51
728x90

이 전 글 보기 >> 176일차(모험 85일차) - 스터디 4

 

//스프링 컨테이너 생성
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);

■ ApplicationContext 는 인터페이스이다. → 다형성이 적용이 된다.

 

 스프링 컨테이너는 XML을 기반으로 만들 수 있고, ( → 요즘에는 사용안함 )

어노테이션 기반의 자바 설정 클래스로 만들 수 있다.

 

 직전에 AppConfig 를 사용했던 방식이 어노테이션 기반의 자바 설정 클래스로 스프링 컨테이너를 만든 것이다.

 

 자바 설정 클래스를 기반으로 스프링 컨테이너( ApplicationContext )를 만들어본다.

  •  new AnnotationConfigApplicationContext(AppConfig.class);

  •  → 이 클래스는 ApplicationContext 인터페이스의 구현체이다.

 

 

 

빈 이름 빈 객체
memberService memberServiceImpl@x01
orderService OrderServiceImpl@x02
memberRepository MemoryMemberRepository@x03
discountPolicy RateDiscountPolicy@x04

→ 이 것을 스프링 빈 이라고 한다.

MemberServiceImpl@x01의 @x01은 memberRepositroy에 참조값을 의미한다.  참조값

" 자바 객체의 hascode " 에 관해 검색해보면 된다.

 

❗ 빈 이름은 항상 다른 이름을 부여한다

 

 

 

* pdf 그림 참고 (스프링 빈 의존관계 설정 - 준비, 스프링 빈 의존관계 설정 - 완료)

스프링 빈 객체를 생성하고 그 다음에 의존관계를 주입한다.

그런데 자바 코드로 스프링 빈을 등록하면 생성자를 호출하면서 의존관계 주입도 함께 처리된다.

 

 

 

728x90