더북(TheBook)

다음과 같이 작성할 수 있습니다.

예제 3-102 수정된 Singer 클래스([[bean-aliases]] Singer.java)

package com.apress.prospring5.ch3.annotated;

@Component("johnMayer")
@Trophy(name={"grammy", "platinum disk"})
public class Singer {

    private String lyric = "We found a message in a bottle we were drinking";

    public void sing() {
        System.out.println(lyric);
    }

}

 

Note @AliasFor에 또 다른 애너테이션을 사용해서 애너테이션 애트리뷰트에 대한 별칭을 만드는 데는 한계가 있습니다. @AliasFor는 스테레오 타입 애너테이션(@Component 애너테이션과 이 @Component 애너테이션을 더 특화시킨 애너테이션)에 사용할 수 없습니다. 그 이유는 @AliasFor가 생겨나기 수년 전부터 스테레오타입 애너테이션의 value 애트리뷰트를 특수하게 처리했기 때문입니다. 그 결과 호환성 문제로 스테레오 타입 애너테이션의 value 애트리뷰트에는 @AliasFor 애너테이션을 사용할 수 없습니다. 스테레오 타입 애너테이션에서 value 애트리뷰트에 별칭을 지정하는 코드를 작성한다고 해도 컴파일 오류 표시 없이 코드가 실행될 수도 있지만, 별칭에 제공된 인수는 무시됩니다. @Qualifier 애너테이션에도 동일한 제약이 적용됩니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.