더북(TheBook)

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()");
    }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.