더북(TheBook)

구현 내용은 매우 간단합니다. 첫 번째 빈 인스턴스가 애플리케이션에 주입되기 전에 BeanNameAware.setBeanName()이 호출되므로 sing() 메서드에서는 빈 이름이 사용 가능한지 체크할 필요가 없다는 점을 잊지 말기 바랍니다. app-context-xml.xml에 담겨 있는 구성을 살펴보겠습니다.

예제 4-18 NamedSinger 빈 구성([[bean-name-aware]] app-context-xml.xml)

<beans ...>
    <bean id="johnMayer" class="com.apress.prospring5.ch4.NamedSinger"/>
</beans>

 

이 설정에서 보듯이 BeanNameAware 인터페이스를 사용하는 데 특별한 구성이 필요하지 않습니다. 다음은 ApplicationContext에서 Singer 인스턴스를 가져와 sing() 메서드를 호출하는 간단한 애플리케이션의 코드입니다.

예제 4-19 NamedSinger 테스트 클래스([[bean-name-aware]] NamedSingerDemo.java)

package com.apress.prospring5.ch4;

import org.springframework.context.support.GenericXmlApplicationContext;

public class NamedSingerDemo {
    public static void main(String... args) {
        GenericXmlApplicationContext ctx = new GenericXmlApplicationContext();
        ctx.load("classpath:spring/app-context-xml.xml");
        ctx.refresh();

        NamedSinger bean = (NamedSinger) ctx.getBean("johnMayer");
        bean.sing();

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