[Spring Framework] 02. 스프링 프레임워크 핵심 기술

Song_Song·2021년 12월 5일
0

Spring Framework 공식 레퍼런스

https://docs.spring.io/spring-framework/docs/current/reference/html/

Spring Framework 핵심 기술

1. IOC Container

: 빈 설정, 생성, 생명주기 관리, 컴포넌트 스캔, 의존 관계 설정 등의 역할을 하는Spring 애플리케이션에서 컴포넌트들의 중앙 저장소

스프링 애플리케이션에서 IOC Container의 역할은 단순 Bean Factory역할 뿐만 아니라 다른 다양한 기능을 제공한다. (MessageSource, EventPublisher 등)

ApplicationContext

애플리케이션을 개발하는 데 필요한 다양한 컨테이너 기능을 추가한 것을 ApplicationContext라고 부른다. 아래 다이어그램은 BeanFactory와 다른 다양한 인터페이스를 상속한 ApplicationContext 구성이다.

ApplicationContext의 기능


1. Bean Factory 기능

Bean 인스턴스 생성 및 설정(이름, 스코프등), 컴포넌트 스캔, 의존 관계 설정, Bean 제공 등

2. Environment (EnvironmentCapable 인터페이스를 상속)

  • Profile : 환경(테스트, 개발, 운영 등)마다 다른 Bean을 사용하고 싶을 때 (-Dspring.profile.active 에 정의된 환경) 클래스나 메소드에 @Profile 어노테이션을 사용하여 정의 가능

  • Property 프로퍼티 : .properties 파일에 정의한 프로퍼티 값을 environment에서 값을 가져와서 코드에 꺼내서 쓸 수 있다. 스프링프레임워크에서는 @PropertySource 어노테이션을 사용하지만 스프링 부트에서는 기본 프로퍼티 소스를 지원한다(application.properties -> @Value로 받아옴).

3. MessageSource (MessageSource 인터페이스를 상속)

국제화 (i18n) 기능을 제공하는 인터페이스이다. 메시지키로 Locale 정보를 바탕으로 여러 가지 나라의 언어로 메시지를 읽어오는 기능이다. 스프링 부트에서는 기본적으로 messages.properties를 제공한다. (messages_ko_kr.properties 형식으로 다국화 메시지파일 생성 가능)

4. ApplicationEventPublisher

특정 이벤트가 발생했을 때 이벤트 핸들러를 통해 특정 기능을 수행하는 것. @EventListener 어노테이션을 사용하여 빈의 메소드에 사용할 수 있다.
스프링이 기본적으로 제공하는 이벤트로는 ApplicationContext가 초기화 , start(), stop(), close(), HTTP 요청이 왔을 때(RequestHandledEvent) 발생하는 이벤트이다.

5. ResourceLoader

리소스 파일을 읽어오는 기능을 제공하는 인터페이스이다.


빈 라이프 사이클

  1. Event
  2. Resource
  3. Validation
  4. Data Binding
  5. SpEL
  6. AOP
profile
성장을 위한 정리 블로그

0개의 댓글