deblog

[Spring] 스프링 IoC(Inversion of Control)에 대해 본문

IT

[Spring] 스프링 IoC(Inversion of Control)에 대해

스콘_ 2021. 11. 18. 21:05
반응형

1.1 스프링 IoC container 및 Bean 소개

 

Inversion of Control(IoC)의 스프링 프레임워크 구현에 대해 설명합니다. IoC는 의존성 주입(DI)이라고도 합니다.

이것은 객체가 생성자 인수, 팩토리 메소드에 대한 인수, 팩토리 메소드에서 생성되거나 반환된 후에 객체 인스턴스에 설정된 속성을 통해서만 종속성을 정의하는 프로세스입니다. 그런 다음 container는 Bean을 생성할 때 이러한 의존성을 주입합니다.

이 과정은 근본적으로 클래스 또는 서비스 로케이터 패턴과 같은 메커니즘을 사용하여 종속성의 인스턴스화 또는 위치를 제어하는 Bean자체의 역(즉, 제어의 역)이다.

org.springframework.bean과 org.springframework.context 패키지는 Spring Framework의 IoC 컨테이너의 기본입니다. BeanFactory 인터페이스는 모든 유형의 개체를 관리할 수 있는 고급 구성 메커니즘을 제공합니다.

ApplicationContext는 BeanFactory의 하위 인터페이스입니다. 

 

  • Spring의 AOP 기능과의 손쉬운 통합
  • 메시지 리소스 처리(국제화에 사용)
  • 이벤트 게시

 

웹 응용 프로그램에서 사용하기 위한 WebApplicationContext와 같은 응용 프로그램 계층별 컨텍스트입니다.

즉, BeanFactory는 구성 프레임워크와 기본 기능을 제공하며, ApplicationContext는 기업별 기능을 더 추가합니다. ApplicationContext는 BeanFactory의 완전한 상위 집합이며 이 장에서는 Spring의 IoC 컨테이너에 대한 설명에만 사용됩니다. ApplicationContext 대신 BeanFactory를 사용하는 방법에 대한 자세한 내용은 BeanFactory를 참조하십시오.

Spring에 애플리케이션의 뼈대를 형성하고 스프링 IoC 컨테이너에 의해 관리되는 개체를 Bean이라고 합니다. Bean은 스프링 IoC 컨테이너에 의해 인스턴스화, 조립 및 관리되는 객체입니다. 그렇지 않으면, Bean은 어플리케이션에 있는 많은 객체들 중 하나일 뿐입니다. BeanBean 사이의 의존성은 컨테이너에 의해 사용되는 구성 메타데이터에 반영됩니다.

 

1.2 컨테이너 개요

 

org.springframework.context.ApplicationContext 인터페이스는 Spring IoC 컨테이너를 나타내며 Bean의 인스턴스화, 구성 및 조립을 담당합니다. 컨테이너는 구성 메타데이터를 읽음으로써 인스턴스화, 구성 및 조립할 개체에 대한 지침을 가져옵니다. 구성 메타데이터는 XML, Java 주석 또는 Java 코드로 표시됩니다. 애플리케이션을 구성하는 개체와 이러한 개체 간의 풍부한 상호 종속성을 표현할 수 있습니다.

ApplicationContext 인터페이스의 여러 구현체가 스프링과 함께 제공됩니다.

독립 실행형 응용 프로그램에서는 ClassPathXmlApplicationContext 또는 FileSystemXmlApplicationContext의 인스턴스를 만드는 것이 일반적입니다. XML은 구성 메타데이터를 정의하는 기존 형식이었지만, 추가 메타데이터 형식을 선언적으로 지원하기 위해 소량의 XML 구성을 제공하여 Java 주석이나 코드를 메타데이터 형식으로 사용하도록 컨테이너에 지시할 수 있습니다.

대부분의 애플리케이션 시나리오에서 하나 이상의 Spring IoC 컨테이너 인스턴스를 인스턴스화하는 데 명시적 사용자 코드가 필요하지 않습니다. 예를 들어 웹 애플리케이션 시나리오에서 애플리케이션의 web.xml 파일에 있는 상용어 웹 설명자 XML의 간단한 8줄이면 충분합니다. Spring Tools for Eclipse(이클립스 지원 개발 환경)를 사용할 경우 마우스 클릭 몇 번 또는 키 입력만으로 이 상용구 구성을 쉽게 만들 수 있습니다.

다음 다이어그램은 스프링 작동 방식을 개괄적으로 보여줍니다. 응용 프로그램 클래스는 구성 메타데이터와 결합되므로 ApplicationContext가 생성되고 초기화되면 완전히 구성되고 실행 가능한 시스템 또는 응용 프로그램을 갖게 됩니다.

 

 

'IT' 카테고리의 다른 글

[WEB API] web API란?  (0) 2022.02.08
[Spring] 웹소켓(webSocket) 구현  (0) 2022.01.08
[OS] 태스크 스케줄링(Task Scheduling)이란?  (0) 2021.12.26
Comments