• 스프링 프레임워크의 세 가지 핵심 기술

    • 의존성 주입
    • 관점 지향 프로그래밍
    • 서비스 추상화
  • 가장 핵심은 의존성 주입

    • 객체 간 결합 정도를 낮춤
    • 스프링 프레임워크는 스프링 빈을 선언하고 스프링 빈 컨테이너를 사용
  • @Bean

  • 스테레오 타입 애너테이션

  • 스프링의 빈

스프링 빈 사용

  • 스프링 빈은 스프링 빈 컨테이너가 관리하는 순수 자바 객체
  • 스프링 빈 컨테이너는 스프링 빈 정의 설정을 읽고 스프링 빈 객체를 생성
  • 서로 의존성이 있는 스프링 빈 객체들을 주입하는 과정을 거친 후 애플리케이션 실행 준비 상태가 됨
    • 애플리케이션 종료전에는 스프링 빈 컨테이너는 스프링 빈 종료를 실행
  • 스프링 빈 생성하고 소멸하는 과정을 스프링 빈의 생명주기라고 함
    • 스프링 빈 컨테이너가 스프링 빈 생명주기를 관리
  • 스프링 애플리케이션을 개발하기 위해 설정해야하는 것
    • 클래스를 스프링 빈으로 만드는 스프링 빈 정의
    • 스프링 빈 정의를 스프링 빈 컨테이너가 찾을 수 있도록 설정
    • 서로 의존성이 있는 스프링 빈들을 조립할 수 있도록 설정
  • 스프링 애플리케이션 시작 과정
    1. 스프링 빈 컨테이너 구현체에 따라 정해진 포맷의 설정 파일 로딩
    2. 설정 파일에 정의된 빈 정의 로딩, 지정된 클래스 패스에 위치한 클래스들을 스캔, 스프링 빈 정의가 있으면 로딩
    3. 로딩된 스프링 빈 컨테이너는 스프링 빈 생성 및 관리

의존성 주입

의존성

  • 어떤 클래스가 다른 클래스를 참조하는것을 “의존성이 있다”라고 표현

ApplicationContext

스프링 빈 스코프

스프링 빈 생명주기 관리

스프링 빈 고급 정의

스프링 투어가 오해한 스프링 빈