[Spring in Action] Spring 이란? 구성요소 정리

728x90
반응형
SMALL

스프링이란?

자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이다.

 

 

Config

최근에는 XML 파일 대신 자바 기반의 Configuration을 사용하는 추세이다.

  • @Configuration : 각 빈이 스프링 애플리케이션 컨텍스트에 제공하는 구성 클래스라는 것을 스프링에게 알려주는 역할
  • @Bean : 각 메서드에서 반환되는 객체가 애플리케이션 컨텍스트의 빈으로 추가된다.
    • 각 Bean의 ID = 해당 Bean을 반환하는 메서드의 이름

 

Bean

애플리케이션의 핵심을 이루는 객체이며, Spring IoC Container에 의해 인스턴스화, 관리, 생성된다.

 

 

Spring Bean Life Cycle

 

Bean Scope

  • singleton
    • 기본적으로 모든 Bean은 Singleton
    • Spring IoC Container에 하나의 객체만 존재한다.
    • Spring Container에서 한 번 생성되고 Container가 사라질 때 Bean도 제거된다.
  • prototype
    • 모든 요청에서 새로운 객체를 생성한다.
    • GC에 의해 Bean이 제거된다.
  • request
    • 하나의 Bean 정의에 대해 하나의 HTTP Request의 생명주기 안에서 단 하나의 객체가 존재한다.
    • 각각의 HTTP Request는 자신만의 객체를 가진다.
  • session
    • 하나의 HTTP Session의 생명주기에 단 하나의 객체가 존재한다.
  • global session

 

자동 연결과 컴포넌트 검색

컴포넌트 검색을 사용하여 스프링은 자동으로 애플리케이션의 classpath에 지정된 컴포넌트를 찾아 빈으로 생성한다.

 

빈 생성 시 자동 연결을 통해 의존 관계가 있는 컴포넌트를 다른 빈에 자동 주입한다.

 

hoooon-s.tistory.com/34

 

[Spring - Inflearn] Component & ComponentScan & 의존관계 주입

@ComponentScan @Configuration @ComponentScan( basePackages = "hello.core", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppC..

hoooon-s.tistory.com

 

부트스트랩

@SpringBootApplication = @SpringBootConfiguration + @EnableAutoConfiguration + @ComponentScan

 

현재 클래스를 구성 클래스로 지정하고, 스프링 부트 자동 - 구성을 활성화한다.

 

스프링 부트의 간편함이 여기서부터 시작된다고 본다.

 

스프링부트

스타터 의존성과 자동 - 구성, 엑츄에이터, CLI를 제공

 

자료 출처

  • http://javaking.tistory.com
  • Spring in Action - 크레이그 월즈
728x90
반응형
LIST