2장. 핵심 기술
참조 문서의 이 부분에서는 Spring 프레임워크에 절대적으로 필수적인 모든 기술을 다룹니다.
그중에서도 가장 중요한 것은 Spring 프레임워크의 IoC(Inversion of Control) 컨테이너입니다.
스프링 프레임워크의 IoC 컨테이너에 대한 자세한 설명에 이어서 스프링의 측면 지향 프로그래밍(AOP) 기술에 대한 포괄적인 내용이 이어집니다.
Spring 프레임워크에는 개념적으로 이해하기 쉽고 Java 엔터프라이즈 프로그래밍에서 AOP 요구 사항의 80%의 스위트 스팟을 성공적으로 해결하는 자체 AOP 프레임워크가 있습니다.
현재 Java 엔터프라이즈 영역에서 가장 풍부하고 기능 면에서 가장 성숙한 AOP 구현을 제공하는 AspectJ와 Spring의 통합도 제공됩니다.
AOT 처리를 사용하여 애플리케이션을 미리 최적화할 수 있습니다. 일반적으로 GraalVM을 사용한 네이티브 이미지 배포에 사용됩니다.
https://link.coupang.com/a/btS8l1
2.1. IoC 컨테이너
이 장에서는 Spring의 제어 반전(IoC) 컨테이너를 다룹니다.
2.1.1. Spring IoC 컨테이너 및 Bean 소개
이 장에서는 제어의 역전(IoC) 원리를 구현하는 Spring 프레임워크에 대해 설명합니다.
IoC는 의존성 주입(DI)이라고도 합니다.
이는 객체가 생성자 인수, 팩토리 메서드의 인수 또는 객체 인스턴스가 생성되거나 팩토리 메서드에서 반환된 후 객체 인스턴스에 설정되는 속성을 통해서만 종속성(즉, 함께 작업하는 다른 객체)을 정의하는 프로세스입니다.
그런 다음 컨테이너는 빈을 생성할 때 이러한 종속성을 주입합니다.
이 프로세스는 기본적으로 클래스를 직접 구성하거나 서비스 로케이터 패턴과 같은 메커니즘을 사용하여
종속성의 인스턴스화 또는 위치를 제어하는 빈 자체의 역방향(따라서 이름, 제어의 역전)입니다.
org.springframework.beans 및 org.springframework.context 패키지는 Spring Framework의 IoC 컨테이너의 기반입니다.
BeanFactory 인터페이스는 모든 유형의 객체를 관리할 수 있는 고급 구성 메커니즘을 제공합니다.
ApplicationContext는 BeanFactory의 하위 인터페이스입니다.
https://link.coupang.com/a/btS8wE
추가 기능
- Spring의 AOP 기능과의 손쉬운 통합
- 메시지 리소스 처리(국제화에 사용)
- 이벤트 게시
- 웹 애플리케이션에서 사용하기 위한 WebApplicationContext와 같은 애플리케이션 계층별 컨텍스트.
간단히 말해, BeanFactory는 구성 프레임워크와 기본 기능을 제공하며, ApplicationContext는 더 많은 기업별 기능을 추가합니다.
ApplicationContext는 BeanFactory의 완전한 상위 집합이며, 이 장에서는 Spring의 IoC 컨테이너에 대한 설명에서 독점적으로 사용됩니다.
ApplicationContext 대신 BeanFactory를 사용하는 방법에 대한 자세한 내용은 BeanFactory API를 다루는 섹션을 참조하세요.
Spring에서는 애플리케이션의 백본을 형성하고 Spring IoC 컨테이너에 의해 관리되는 객체를 Bean이라고 합니다.
빈은 Spring IoC 컨테이너에 의해 인스턴스화, 어셈블 및 관리되는 객체입니다.
그렇지 않으면 빈은 애플리케이션의 많은 객체 중 하나에 불과합니다.
빈과 빈 간의 종속성은 컨테이너에서 사용하는 구성 메타데이터에 반영됩니다.
*출처- https://docs.spring.io/spring-framework/docs/6.0.0/reference/pdf/spring-framework.pdf
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다
'무근본 IT 지식 공유 > 무근본 스프링(Spring Framework)' 카테고리의 다른 글
Spring 프레임워크의 소스 호출 흐름을 도식화 (0) | 2024.03.18 |
---|---|
Spring Framework 디자인 철학 알아보고 시작하기 - 공식문서 리뷰 (0) | 2024.03.12 |
1.2장 - Spring과 Spring 프레임워크의 역사 (0) | 2024.03.12 |
1장. Spring 프레임워크 개요 (Spring Framework 공식문서 해석) (0) | 2024.03.12 |
[무근본 스프링] @Test 어노테이션에 대해 - 왕초보도 이해하는 상세 설명 ! (0) | 2023.04.20 |
댓글