[인프런 강의] 스프링 빈 설정하기

권하준·2024년 4월 4일
1

Spring Boot

목록 보기
6/14

스프링 빈이란?

  • Spring에서는 Spring Container 를 통해서 객체를 관리한다.
  • 여기서 Spring Container가 관리하는 객체를 스프링 빈(Spring Bean)이라고 부른다.
  • 스프링 빈은 대개 싱글톤(Singleton) 방식으로 사용된다.

    🎈 싱글톤(Singleton)
    객체를 단 1개만 만드는 방식의 디자인 패턴

  • 개발자가 Java코드로 만든 객체들을, Spring Container에서 관리하기 위한 Spring Bean 객체라는 것을 사전에 알려줘야한다.
  • Spring Boot에서 클래스를 스프링 빈 객체로 등록하는 방식은 두가지가 있다.
    1. @Component 어노테이션 사용
    2. @Bean 어노테이션 사용

@Component 어노테이션을 사용하여 설정하기

@Component 어노테이션을 사용하는 방식은 매우 간단하다.
스프링 빈으로 등록하려는 클래스 위에 @Component 어노테이션을 붙이면 된다.

@Controller, @Service, @Repository 어노테이션

위의 어노테이션들을 사용할 때도, @Component를 사용한 것처럼 해당 클래스가 스프링 빈으로 등록된다.
그 예시로 @Controller 어노테이션의 경우를 살펴보자.

위 처럼 @Controller 어노테이션을 사용하여 스프링 빈을 등록하였다.
어떻게 이런 방식으로 스프링 빈 등록이 가능한지 확인하기 위해, 해당 어노테이션이 정의된 위치로 이동해보자.

해당 코드를 확인하면 @Controller안에 @Component가 포함되는 것을 볼 수 있다.
이러한 원리로 @Controller 로도 스프링 빈 설정이 가능하다.
이는 @Service, @Repository 등에서도 동일하다.

@Bean 어노테이션을 사용하여 설정하기

또 하나의 스프링 빈 등록 방식은, @Configuration 어노테이션을 붙인 클래스 안에서 @Bean 어노테이션이 붙은 메소드를 만드는것이다.

메소드에서, 스프링 빈으로 등록할 객체를 리턴해주면 된다.
이 때, 정의한 메소드의 이름은 Spring Bean의 이름이 된다.

비교

  • @Component : 편리하다. 간결하다. 깔끔하다.
  • @Bean : 스프링으로 등록할 객체를, 내 마음대로 수정할 수 있다. 예를 들어 위에서 생성한 MemberService 객체의 속성값을 변경한 후 스프링 빈으로 등록 가능하다. 이처럼 내 입맛에 맞게 객체를 바꿀 수 있다.
profile
자바 BE 개발자 지망생입니다.

0개의 댓글