더북(TheBook)

이 클래스는 singer() 메서드에 @Bean 애너테이션을 적용해 선언된 Singer 타입의 빈 정의를 포함합니다. 이 애너테이션에 인수가 제공되지 않으면 빈의 고유 식별자인 id로 메서드 이름이 사용됩니다. 따라서 앞서 보인 클래스가 실행되면 다음과 같은 결과가 출력됩니다.

id: singer
 별칭: []

 

별칭을 선언하려면 @Bean 애너테이션의 name 애트리뷰트를 사용합니다. 이 애트리뷰트는 이 애너테이션의 기본 애트리뷰트로써 @Bean, @Bean("singer"), @Bean(name="singer")처럼 singer() 메서드에 애너테이션을 적용해 빈을 선언하는 것은 같은 효과를 줍니다. 스프링 IoC 컨테이너는 Singer 타입의 빈과 singer라는 ID를 가진 빈을 생성할 것입니다.

이 애트리뷰트의 값이 별칭 지정 시에 사용할 수 있는 구분 기호(공백, 쉼표, 세미콜론)를 포함하는 문자열이라면 이 문자열이 빈의 ID가 됩니다. 하지만 값이 문자열 배열이면 첫 번째 값은 id가 되고 다른 값은 별칭이 됩니다. 다음과 같이 빈 구성을 수정하십시오.

예제 3-96 AliasBeanConfig 클래스([[bean-aliases]] AliasBeanConfig.java)

@Configuration
public static class AliasBeanConfig {
    @Bean(name={"johnMayer","john","jonathan","johnny"})
    public Singer singer(){
        return new Singer();
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.