본문 바로가기
카테고리 없음

스프링 빈(Spring Bean)이란?

by parkman

1. 스프링 빈(Spring Bean)

Spring IOC 컨테이너가 관리하는 자바 객체를 빈이라고 부른다.

 

  • 예전의 자바 프로그래밍에서는 Class를 생성하고 new 키워드를 이용하여 객체를 생성한 후 사용했습니다. 하지만 Spring에서는 직접 new 키워드를 이용하여 객체를 생성하는게 아닌 Spring에 의하여 관리당하는 자바 객체를 사용한다. 이렇게 Spring에 의해 생성되고 관리되는 자바 객체를 Bean이라고 한다.
  • 우리는 IOC 패턴을 쉽게 사용하기 위해서 스프링 프레임워크의 IOC 컨테이너를 제공받아서 사용한다. 그러면 그때 IOC컨테이너에 등록되는 자바객체를 스프링 빈 이라고 부르는 것.
  • 즉, 어플리케이션의 객체들이 설정정보와 함께 컨테이너에 등록되면 그것이 스프링 빈이라고 한다.

* 제어의 역전(IOC, Inversion Of Control)

일반적으로 에전 자바 프로그래밍에서는 객체들이 프로그램의 흐름을 결정하고, 각 객체를 직접 사용자가 생성하고

조작(객체를 직접 생성, 메소드 호출)했습니다. 즉, 모든 작업을 사용자가 제어하는 구조였습니다.

A 객체에서B 객체에 있는 메소드를 사용하려면, B객체를 직접 A 객체 내에서 생성하고 메소드를 호출했습니다.

여기서 IOC를 적용할 경우, 객체의 생성 및 생명주기 관리를 IOC 컨테이너라는 특별한 관리자에게 맡깁니다. 사용자가 직접 객체를 생성하지 않고 객체의 생성 및 생명주기를 IOC 컨테이너가 컨트롤하게 됩니다. 즉, 사용자의 제어권을 다른 주체(IOC 컨테이너)에게 넘기는 것을 제어의 역전(IOC)라고 한다.

 

2. Spring IOC 컨테이너에 Spring Bean을 등록하는 방법

1) @ComponentScan 어노테이션을 사용한 Component Scanning

  • @ComponentScan 이란 @Component 어노테이션 및 streotype(@Service, @Repository, @Controlle) 등 어노테이션이 부여된 Class들을 자동으로 Scan하여 Bean으로 등록해주는 역할을 하는 어노테이션이다.
  • Spring Boot 프레임워크를 사용하게되면 main 함수위에 사용한다.

2) 빈 설정파일에 직접 빈 등록(@Configuration, @Bean)

  • 직접 빈을 등록하기 위해선 @Configuration 및 @Bean 어노테이션을 사용한다.
  • 라이브러리 혹은 내장 클래스 등 개발자가 직접 제어 불가능한 클래스의 경우 @Configuration 어노테이션과 @Bean 어노테이션을 사용하여 Bean으로 등록한다.

 

 

 

Reference

https://okimaru.tistory.com/m/114

https://bagbokman.tistory.com/6

728x90
반응형
LIST