Spring/Spring

[Spring][Core] 2-2. Bean: Naming

noahkim_ 2023. 10. 14. 17:44

1. Naming Beans

식별자

  • 모든 빈은 하나 이상의 식별자를 가지며, 이 식별자는 컨테이너 내에서 고유해야 합니다.
  • 빈은 보통 하나의 식별자만을 가지지만, 추가로 별칭(aliases)으로 사용할 식별자를 더 가질 수 있습니다.

 

빈 이름 자동 생성
  • 클래스의 이름에서 가져온 후 첫 문자를 소문자로 변경하여 생성됩니다.
  • 첫 번째와 두 번째 문자가 모두 대문자인 경우 원래의 대문자 유지 규칙이 적용됩니다.

 

Aliasing a Bean outside the Bean Definition

  • 빈에 대한 별칭(alias)을 설정하면 해당 빈을 다양한 이름으로 참조할 수 있게 해줍니다.
  • 이 기능은 특히 큰 시스템에서 여러 하위 시스템 간에 설정을 분할할 때 유용하게 사용됩니다.
    • 각 하위 시스템은 자신만의 객체 정의를 가질 수 있습니다.

 

 

예제) xml 

더보기
<bean id="mainService" class="com.example.MainService"/>

<alias name="mainService" alias="primaryService"/>
<alias name="mainService" alias="serviceOne"/>

 

예제) java

더보기
@Configuration
public class AppConfig {

    @Bean(name = {"mainService", "primaryService", "serviceOne"})
    public MainService mainService() {
        return new MainService();
    }
}

 

2. Component Scan

  • 개발자가 직접 빈을 등록하지 않아도 프로젝트 내의 클래스들을 자동으로 스캔하여 빈으로 등록합니다.
  • 이름이 지정되지 않은 컴포넌트에 대한 빈 이름을 Spring이 자동 생성합니다.