🧐강의🧐
https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90%EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/dashboard
✅ 컨테이너 : 사용하는 객체들을 담고 있음
✨ 스프링 컨테이너 만드는 방법
· 애노테이션 기반 자바 설정 클래스 → AppConfig 사용
· XML 기반
✨ 스프링 컨테이너 생성 과정
1. 스프링 컨테이너 생성 (자바 설정 클래스 기반)
ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
➡️ Application Context : 인터페이스 - 스프링 컨테이너
➡️ AnnotationConfigApplicationContext : 구현체
➡️ AppConfig.class : 스프링 컨테이너 생성 시 구성 정보 저장
2. 스프링 빈 등록
· 스프링 컨테이너가 파라미터로 넘어온 설정 클래스 정보로 스프링 빈 등록
· 빈 이름 = 메서드 이름
· 빈 이름 직접 부여 가능 (ex. @Bean(name = "memberService2"))
⚠️주의⚠️
빈 이름은 항상 다른 이름을 부여해야 한다.
같은 이름 부여 시, 다른 빈이 무시되거나, 기존 빈을 덮어버리거나, 설정에 따라 오류가 발생한다.
3. 스프링 빈 의존 관계 설정 - 준비
4. 스프링 빈 의존 관계 설정 - 완료
· 스프링 컨테이너는 설정 정보를 참고하여 의존 관계 주입 (DI)
참고
스프링은 빈을 생성하고, 의존 관계를 주입하는 단계가 나누어져 있다.
자바 코드로 스프링 빈을 등록하면, 생성자를 호출하면서 의존 관계 주입도 한 번에 처리된다.
정리
- 스프링 컨테이너 생성
- 설정(구성) 정보를 이용하여 스프링 빈 등록
- 의존 관계 설정
'Spring > 스프링 핵심 원리 - 기본편' 카테고리의 다른 글
[스프링 컨테이너와 스프링 빈] 스프링 빈 조회 - 기본, 동일한 타입이 둘 이상, 상속 관계 (0) | 2023.11.22 |
---|---|
[스프링 컨테이너와 스프링 빈] 컨테이너에 등록된 모든 빈 조회 (0) | 2023.11.21 |
[이해2 - 객체 지향 원리 적용] 스프링으로 전환하기 (0) | 2023.11.19 |
[이해2 - 객체 지향 원리 적용] IoC, DI, 그리고 컨테이너 (0) | 2023.11.16 |
[이해2 - 객체 지향 원리 적용] SOLID 中 적용된 3가지 원칙 (0) | 2023.11.14 |