-
스프링 프레임워크의 세 가지 핵심 기술
- 의존성 주입
- 관점 지향 프로그래밍
- 서비스 추상화
-
가장 핵심은 의존성 주입
- 객체 간 결합 정도를 낮춤
- 스프링 프레임워크는 스프링 빈을 선언하고 스프링 빈 컨테이너를 사용
-
@Bean -
스테레오 타입 애너테이션
-
스프링의 빈
스프링 빈 사용
- 스프링 빈은 스프링 빈 컨테이너가 관리하는 순수 자바 객체
- 스프링 빈 컨테이너는 스프링 빈 정의 설정을 읽고 스프링 빈 객체를 생성
- 서로 의존성이 있는 스프링 빈 객체들을 주입하는 과정을 거친 후 애플리케이션 실행 준비 상태가 됨
- 애플리케이션 종료전에는 스프링 빈 컨테이너는 스프링 빈 종료를 실행
- 스프링 빈 생성하고 소멸하는 과정을 스프링 빈의 생명주기라고 함
- 스프링 빈 컨테이너가 스프링 빈 생명주기를 관리
- 스프링 애플리케이션을 개발하기 위해 설정해야하는 것
- 클래스를 스프링 빈으로 만드는 스프링 빈 정의
- 스프링 빈 정의를 스프링 빈 컨테이너가 찾을 수 있도록 설정
- 서로 의존성이 있는 스프링 빈들을 조립할 수 있도록 설정
- 스프링 애플리케이션 시작 과정
- 스프링 빈 컨테이너 구현체에 따라 정해진 포맷의 설정 파일 로딩
- 설정 파일에 정의된 빈 정의 로딩, 지정된 클래스 패스에 위치한 클래스들을 스캔, 스프링 빈 정의가 있으면 로딩
- 로딩된 스프링 빈 컨테이너는 스프링 빈 생성 및 관리
의존성 주입
의존성
- 어떤 클래스가 다른 클래스를 참조하는것을 “의존성이 있다”라고 표현