스프링 빈이란?
- Spring에서는 Spring Container 를 통해서 객체를 관리한다.
- 여기서 Spring Container가 관리하는 객체를 스프링 빈(Spring Bean)이라고 부른다.
- 스프링 빈은 대개 싱글톤(Singleton) 방식으로 사용된다.
🎈 싱글톤(Singleton)
객체를 단 1개만 만드는 방식의 디자인 패턴 - 개발자가 Java코드로 만든 객체들을, Spring Container에서 관리하기 위한 Spring Bean 객체라는 것을 사전에 알려줘야한다.
- Spring Boot에서 클래스를 스프링 빈 객체로 등록하는 방식은 두가지가 있다.
@Component
어노테이션 사용@Bean
어노테이션 사용
@Component 어노테이션을 사용하여 설정하기
@Component
어노테이션을 사용하는 방식은 매우 간단하다.
스프링 빈으로 등록하려는 클래스 위에 @Component
어노테이션을 붙이면 된다.
@Controller, @Service, @Repository 어노테이션
위의 어노테이션들을 사용할 때도, @Component를 사용한 것처럼 해당 클래스가 스프링 빈으로 등록된다.
그 예시로 @Controller
어노테이션의 경우를 살펴보자.
위 처럼 @Controller
어노테이션을 사용하여 스프링 빈을 등록하였다.
어떻게 이런 방식으로 스프링 빈 등록이 가능한지 확인하기 위해, 해당 어노테이션이 정의된 위치로 이동해보자.
해당 코드를 확인하면 @Controller
안에 @Component
가 포함되는 것을 볼 수 있다.
이러한 원리로 @Controller
로도 스프링 빈 설정이 가능하다.
이는 @Service
, @Repository
등에서도 동일하다.
@Bean 어노테이션을 사용하여 설정하기
또 하나의 스프링 빈 등록 방식은, @Configuration
어노테이션을 붙인 클래스 안에서 @Bean
어노테이션이 붙은 메소드를 만드는것이다.
메소드에서, 스프링 빈으로 등록할 객체를 리턴해주면 된다.
이 때, 정의한 메소드의 이름은 Spring Bean의 이름이 된다.
비교
@Component
: 편리하다. 간결하다. 깔끔하다.@Bean
: 스프링으로 등록할 객체를, 내 마음대로 수정할 수 있다. 예를 들어 위에서 생성한 MemberService 객체의 속성값을 변경한 후 스프링 빈으로 등록 가능하다. 이처럼 내 입맛에 맞게 객체를 바꿀 수 있다.
'Back End > Spring && Spring Boot' 카테고리의 다른 글
[Spring boot] URL로 파라미터 넘기기(@PathVariable, @RequestParam) (0) | 2024.06.01 |
---|---|
Spring 웹 계층 구조, Spring Web Layer (0) | 2024.06.01 |
[인프런강의] 스프링 웹 개발 기초(정적 컨텐츠, MVC, API) (0) | 2024.06.01 |
[인프런 강의] 3. 스프링 부트 프로젝트를 jar 파일로 빌드하고 실행하기 (0) | 2024.06.01 |
[인프런 강의] 2. View 설정하기 - Welcome Page With index.html, Templated View With Thymeleaf (0) | 2024.06.01 |