다음과 같이 작성할 수 있습니다.
예제 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 애너테이션에도 동일한 제약이 적용됩니다.