본문 바로가기

springboot

[스프링 핵심 원리] 스프링으로 전환하기

 

@Configuration

스프링에서 설정 정보를 뜻함

 

@Bean

스프링 컨테이너에 올림

 

ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class);
MemberService memberService = applicationContext.getBean("memberService", MemberService.class);

AppConfig에 정의한 @Bean을 스프링 컨테이너에 올리고 getBean으로 가져옴 

 

스프링 컨테이너에 Bean 등록

 

스프링 빈은 @Bean이 붙은 method의 이름을 스프링 빈의 이름으로 사용한다. "memberService", "orderService"

 

@Bean(name="aaa")로 이름을 지정할 수도 있다. 

 

 

스프링 컨테이너를 사용했을 때 장점

  • 직접 자바 코드를 사용하지 않고 스프링 컨테이너에서 필요한 것들을 꺼내와 사용할 수 있다. 
  • 엔터프라이즈에서 스프링 컨테이너가 관리함으로써 얻을 수 있는 이점이 굉장히 많다.

 

 

스프링 컨테이너의 생성 과정

1.

ApplicationContext를 스프링 컨테이너라고 한다. 이는 인터페이스이다.

그렇다면 AnnotationConfigApplicationContextApplicationContext의 구현체 중 하나이다.

스프링 컨테이너는 XML기반으로도 만들 수 있지만, 요즘은 주로 annotation 기반의 자바 설정 클래스로 만든다.

 

2.

스프링 컨테이너를 생성할 때는 구성 정보를 지정해주어야 하기 때문에

여기에서는 AppConfig.class를 구성 정보로 지정했다.

 

3.

스프링 컨테이너가 생성된 다음에는 파라미터로 넘어온 설정 클래스 정보를 사용해서 스프링 빈을 등록한다.

(Bean 이름과 Bean 객체를 각각 매핑한다.)

 

4.

스프링 컨테이너는 설정 정보를 보고 의존관계를 설정한다.