728x90
Spring Framework는 Java 기반의 애플리케이션에서 의존성 주입과 빈 관리를 통해 효율적인 개발을 지원합니다.
이 과정에서 중요한 역할을 하는 것이 바로 빈(Bean)입니다.
빈의 이름을 올바르게 이해하고 설정하는 것은 Spring의 의존성 주입 및 빈 관리 기능을 효과적으로 활용하는 데 필수적입니다.
이번 포스트에서는 Spring에서 빈 이름이 어떻게 결정되는지, 그리고 빈 이름을 명시적으로 설정하는 방법에 대해 알아보겠습니다.
빈 이름 형성 규칙
1. 클래스 이름으로 자동 생성
@Component
public class MyService {
// 빈으로 등록됨
}
- Spring은 @Component, @Service, @Repository, @Controller 등의 어노테이션을 사용할 때, 빈 이름을 자동으로 생성합니다.
- 빈 이름은 클래스 이름의 첫 글자를 소문자로 변환한 형태가 됩니다.
- 예를 들어, 위 코드의 경우 빈 이름은 myService가 됩니다.
2. 명시적으로 빈 이름을 설정
@Component("customBeanName")
public class MyService {
// 빈으로 등록됨, 이름은 customBeanName
}
- 빈 이름을 명시적으로 설정할 수 있습니다. @Component, @Service, @Repository, @Controller 등의 어노테이션에 value 속성을 사용하여 빈 이름을 직접 지정할 수 있습니다.
- 위 예제에서 MyService 클래스는 customBeanName이라는 이름으로 빈으로 등록됩니다.
3. @Bean 어노테이션을 사용
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class AppConfig {
@Bean
public MyService myService() {
return new MyService();
}
}
위 코드에서 AppConfig 클래스의 myService() 메서드는 @Bean 어노테이션을 통해 MyService 객체를 빈으로 등록합니다. 이 경우, 빈 이름은 메서드 이름인 "myService"가 됩니다.