더북(TheBook)

이러한 각각의 접근법은 기술적 관점에서 똑같이 유효하지만, 어떤 방식이 애플리케이션에 가장 적합한 선택일까요? 먼저, 클래스 이름을 자동으로 사용하는 방식은 피해야 합니다. 이 방식은 동일한 타입의 여러 빈을 정의할 수 없으므로 유연하지 않으며, 고유한 이름을 정의하는 것이 훨씬 더 낫습니다. 고유한 이름을 지정하면 사용하던 스프링의 동작 방식이 나중에 달라지더라도 애플리케이션은 계속 잘 동작할 것입니다. 스프링이 빈의 이름을 어떻게 지정하는지 보려면 앞의 구성을 사용해서 다음 예제를 실행하십시오.

예제 3-85 BeanNamingTest 클래스([[bean-aliases]] BeanNamingTest.java)

package com.apress.prospring5.ch3.xml;

import org.springframework.context.support.GenericXmlApplicationContext;

public class BeanNamingTest {

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

        Map<String, String> beans = ctx.getBeansOfType(String.class);

        beans.entrySet().stream().forEach(b -> System.out.println(b.getKey()));

        ctx.close();
    }

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