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이 자동 생성합니다.
'Spring > Spring' 카테고리의 다른 글
[Spring][Core] 2-5. Bean: Dependency Injection (0) | 2023.10.14 |
---|---|
[Spring][Core] 2-4. Bean: Scopes (0) | 2023.10.14 |
[Spring][Core] 2-3. Bean: Instantiating (0) | 2023.10.14 |
[Spring][Core] 2-1. Bean: Definition (1) | 2023.10.14 |
[Spring][Core] 1. IoC Container (0) | 2023.10.14 |