4.5.1 BeanNameAware 인터페이스 사용하기
자신에게 부여된 이름을 알고자 하는 빈이 구현해야 할 BeanNameAware 인터페이스는 setBeanName (String) 메서드 하나를 가지고 있습니다. 스프링은 빈 구성을 마친 뒤 라이프사이클 콜백(초기화나 소멸)을 호출하기 전에 setBeanName() 메서드를 호출합니다(그림 4-1 참고). 일반적으로 setBeanName() 메서드는 컨테이너에서 빈 이름을 받아 나중에 사용하려고 멤버 변수로 저장하는 단 한 줄로 구현합니다. 다음은 BeanNameAware를 사용해 빈의 이름을 얻어온 후 나중에 얻어온 빈 이름을 콘솔에 출력하는 코드입니다.
예제 4-17 빈 이름을 얻어와 출력([[bean-name-aware]] NamedSinger.java)
package com.apress.prospring5.ch4; import org.springframework.beans.factory.BeanNameAware; public class NamedSinger implements BeanNameAware { private String name; /** @Implements {@link BeanNameAware#setBeanName(String)} */ public void setBeanName(String beanName) { this.name = beanName; } public void sing() { System.out.println("Singer [" + name + "] - sing()"); } }