Spring/Spring

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

noahkim_ 2023. 10. 14. 17:44

1. Naming Beans

식별자

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

 

Aliasing a Bean outside the Bean Definition

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

 

XML에서 빈 별칭 설정
  • <alias/> 요소를 사용하여 빈에 대한 별칭을 지정할 수 있습니다.

 

Java 설정에서 빈 별칭 설정
  • @Bean을 사용하여 별칭을 제공할 수 있습니다.

 

XML 기반 구성

  • id, name 속성을 사용하여 빈의 식별자를 지정할 수 있습니다.
  • 제공하지 않으면, 컨테이너는 자동으로 빈에 대한 고유한 이름을 생성합니다.

 

id
  • 하나의 식별자만 지정할 수 있습니다.

 

name
  • 쉼표(,), 세미콜론(;) 또는 공백을 사용하여 여러 별칭을 지정할 수 있습니다.

 

빈 명명 규칙

  • 일반적으로 Java의 인스턴스 필드 이름 작성 규칙을 따릅니다.
    • 첫 글자는 소문자로 시작
    • 그 후에는 camel-case를 사용합니다.

 

컴포넌트 스캔

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

 

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