스프링 부트에서 핵심적인 역할을 하는 "빈(Bean)"과 "컨테이너(Container)"에 대해 알아보려고 합니다. 이 두 요소는 스프링 부트의 핵심을 이루는데, 그 동작 원리를 이해하면 스프링 부트 어플리케이션을 효과적으로 개발할 수 있습니다.
빈 (Bean)
빈은 스프링 부트에서 관리되는 객체를 의미합니다. 이 객체들은 스프링 컨테이너에 의해 생성, 관리, 주입되어 어플리케이션의 여러 부분에서 활용됩니다. 빈은 일반적으로 자바 클래스로 표현되며, @Component, @Service, @Repository, @Controller 등의 어노테이션을 사용하여 스프링에게 해당 클래스가 빈으로 등록되어야 함을 알립니다.
컨테이너 (Container)
컨테이너는 빈을 관리하고 제공하는 환경을 의미합니다. 스프링 부트 어플리케이션은 스프링 컨테이너에 의해 실행되며, 여기서 빈의 생명주기와 의존성 주입이 관리됩니다. 스프링 부트는 기본적으로 여러 종류의 컨테이너를 제공하는데, 그 중에서도 가장 많이 사용되는 것은 ApplicationContext 입니다.
빈 등록과 사용
// 빈 등록: @Component 어노테이션을 통해 스프링에게 해당 클래스가 빈으로 등록되어야 함을 알림
@Component
public class MyBean {
// 빈 사용: 다른 빈에서 주입받아 사용할 수 있음
public void doSomething() {
System.out.println("빈이 동작합니다!");
}
}
위의 코드에서 MyBean 클래스는 @Component 어노테이션을 통해 스프링에게 빈으로 등록되었습니다. 이제 다른 빈에서 MyBean을 주입받아 사용할 수 있습니다.
컨테이너의 역할
컨테이너는 빈의 생명주기를 관리하고, 필요한 빈을 생성하여 주입합니다. 또한 빈 간의 의존성을 해결하고, 필요한 빈을 찾아 제공합니다. 개발자는 컨테이너에게 필요한 빈을 요청하면 되며, 스프링 부트는 이를 적절히 처리하여 의존성 주입을 수행합니다.
어플리케이션 실행과정
스프링 부트 어플리케이션이 실행될 때, 스프링 컨테이너가 초기화되고 빈들이 등록, 생성되며 의존성이 주입됩니다. 이 과정을 통해 어플리케이션은 빈들의 조합으로 동작하게 됩니다.
스프링 부트에서 빈과 컨테이너는 어플리케이션을 유연하게 만들어주는 핵심적인 구성 요소입니다.
'백엔드 > Spring Boot 이론' 카테고리의 다른 글
JUnit (0) | 2023.11.27 |
---|---|
스프링부트 어노테이션 (0) | 2023.11.26 |
제어의 역전과 의존성 주입 (0) | 2023.11.23 |
스프링과 스프링부트 차이점 (1) | 2023.11.23 |
스프링 부트의 특징 (0) | 2023.11.23 |