본문 바로가기
Spring/Spring Framework 시작하기

2. Spring 컨텍스트 만들기

by 김꾸꾸(하트) 2023. 5. 11.
<학습 목표>
Spring 컨텍스트를 만들고 Spring이 사용자 지정 객체 1개를 관리하도록 하기

 

 

@Configuration클래스(설정 파일)

정의

스프링 애플리케이션 컨텍스트의 구성 정보를 포함하고 있다는 것을 나타내는 어노테이션

 

특징

  • Bean 구성 정보를 제공하고 생성

 

Bean

정의

  1. 스프링 프레임워크에서 관리되는 객체
  2. 스프링 애플리케이션 컨텍스트에 등록되어 다른 객체와 함께 사용될 수 있는 객체
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration //Spring설정파일, Spring의 bean을 정의하는 클래스
public class HelloWorldConfiguration {
	
   
		@Bean  //@Bean 어노테이션을 사용하여 빈으로 등록된 클래스
		public String name() {//Bean은 Spring 컨텍스트가 관리
			return "Ranga";
		}
		
		

}

 

 

Spring 컨텍스트(= 컨테이너)

정의

빈 객체들을 생성하고 관리하는 컨테이너 

 

특징

객체의 생성과 관리를 직접 처리하지 않고, 스프링 컨텍스트가 대신 처리해줌(= 의존성 관리)

 

기능

  • 객체를 생성하고 관리(= DI)→ @Bean
  • 의존성 관리
  • 라이프사이클 관리
  • AOP(Aspect Oriented Programming) 지원
  • 다국어 처리

대표적인 컨텍스트 종류(구현체)

  • AnnotationConfigApplicationContext
  • XmlWebApplicationContext
  • WebApplicationContext

 

AnnotationConfigApplicationContext클래스

정의

스프링에서 제공하는 ApplicationContext 인터페이스의 구현체 중 하나이고,

설정 클래스에서 정의한 빈들을 등록하고, 관리하는 Spring 컨텍스트를 생성하는 클래스

 

 

 

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class App02HelloWorldSpring {
	public static void main(String[] args) {
		
		//1. 설정 파일로부터 ApplicationContext 생성
		var context = 
		new AnnotationConfigApplicationContext(HelloWorldConfiguration.class);
		
		
		/*2. Spring에서 관리할 항목 구성
		- HelloWorldConfiguration클래스 - @Configuration
		- name - @Bean 
		*/
		
		
		//3.ApplicationContext로부터 Spring에서 관리하는 Bean가져오기
		System.out.println(context.getBean("name"));
		
		
		
	}

}