목차

  1. 싱글톤 패턴
  2. 스프링의 Bean
  3. 스프링의 의존성 주입
  4. 스프링 컨테이너

싱글톤 패턴

싱글톤 패턴이란 클래스의 인스턴스가 딱 1개만 생성되는 디자인 패턴이다.

private 생성자로 객체의 생성을 단 1번만 할 수 있도록 제한한다.

public class SingletonService {

		//1. static 영역에 객체를 딱 1개만 생성해둔다.
		private static final SingletonService instance = new SingletonService();

		//2. public으로 열어서 객체 인스턴스가 필요하면 이 static 메서드를 통해서만 조회하도록 허용한다.
    public static SingletonService getInstance() {
          return instance;
		}

		//3. 생성자를 private으로 선언해서 외부에서 new 키워드를 사용한 객체 생성을 못하게 막는다.
		private SingletonService() {
		}

		public void logic() {
					System.out.println("싱글톤 객체 로직 호출");
		}
}

스프링의 Bean

여러 가지 어노테이션을 통해 Bean을 스프링에 등록할 수 있다.

Untitled

스프링의 의존성 주입

스프링에서는 사용자가 직접 의존성 주입하던 것을 특정한 매개체를 통해 진행한다.

이 과정에서 제어의 역전이 발생한다고 표현한다.

Untitled

스프링 Container 생성 과정

  1. ApplicationContext?

우리가 Container라고 칭하는 것은 사실은 ApplicationContext 인터페이스로 구현된 것이다. 이는 다음과 같은 구현 단계를 거치고 있다.

Untitled