1.5 스프링의 IoC

조창훈·2023년 9월 26일

1.5.1 오브젝트 팩토리를 이용한 스프링 IoC

애플리케이션 컨텍스트와 설정정보

빈(bean)

  • 스프링이 제어권을 가지고 직접 만들고 관계를 부여하는 오브젝트
    • 즉, 이전에 DaoFactory를 통해 만들어진 UserDao와 같은 오브젝트들이 빈이라고 보면된다
  • 스프링 빈은 스프링 컨테이너가 생성과 관계설정, 사용등을 제어해주는 제어의 역전이 적용된 오브젝트

빈 팩토리

  • 위와 같은 스프링 빈의 생성과 관계설정 같은 제어를 담당하는 IoC 오브젝트를 빈 팩토리라고 부름
  • 사실 이보다 더 확장된 애플리케이션 컨텍스트를 사용함

애플리케이션 컨텍스트

  • 별도의 정보를 참고해서 빈의생성, 관계설정등의 제어작업을 총괄함
  • 기존 DaoFactory에서는 설정정보, 클래스의 오브젝트를 생성하고 연결하는 정보 등이 자바코드로 만들어져 있음
  • 애플리케이션 컨텍스트는 별도로 설정 정보를 담고있는 것을 가져와 이를 활용하는 IoC 엔진임
  • 우리가 만든 DaoFactory도 조금만 손보면 설정정보로 활용할 수 있음

생성자를 빈으로 등록

  • 위와 같이 생성자를 빈으로 등록한다.
  • @Configuration 어노테이션을 사용하면, 설정을 담당하는 클래스로 인식한다.
  • @Bean으로 등록하면 애플리케이션 컨텍스트에서 객체를 등록하고 어디서든 사용할 수 있다.
  • new AnnotationConfigApplicationContext는 어노테이션을 통해 설정정보를 전달하는 경우에 사용한다.
  • 컨텍스트에 등록된 빈 객체는 context.getBean을 통해서 가져올 수 있다.
  • 이름을 정하는 이유는 생성하는 방식이나 구성을 다르게 가져갈 수 있기 때문이다.

1.5.2 애플리케이션 컨텍스트의 동작방식

애플리케이션 컨텍스트

  • IoC컨테이너 또는 스프링 컨테이너, 빈 팩토리라고 부른다.
  • ApplicationContext 인터페이스를 구현한다.
  • ApplicationContext는 BeanFactory 인터페이스를 상속했다.
profile
초전도-개발자의 길

0개의 댓글