원문 : Chapter 5. Naming strategy

지금까지의 모든 예제들은, 메소드 이름으로 메소드를 호출하여 bean을 받아왔다.

@Configuration
public class ColoursConfiguration {
  // create a bean with name 'blue'
  @Bean
  public Color blue() {
    ...
  }
  ...
}

// dependency lookup for the blue colour
applicationContext.getBean("blue");

몇몇 경우에는, 이러한 네이밍 스키마가 적합하지 않을 수도 있다. 즉 서로 다른 설정 클래스에서 같은 이름의 정의를 사용하고 있는 경우가 그렇다. 이러한 네이밍 지침을 사용하는 입장에서 맘대로 변경할 수 있도록 BeanNamingStrategy 인터페이스를 제공하고 있다.

물론, 코드를 작성하기 전에, Spring이 기본으로 제공하고 있는 MethodNameStrategy 구현체들을 살펴보는 것이 좋겠다.

 <!-- Java Configuration post processor -->
 <bean class="org.springframework.config.java.process.ConfigurationPostProcessor">
    <property name="namingStrategy">
       <bean class="org.springframework.config.java.naming.MethodNameStrategy">
          <property name="prefix" value="CLASS"/>
       </bean>
    </property>
 </bean>

이런 설정을 해두면, bean을 생성할 때 메소드 이름에 클래스 이름까지 붙여주게 된다.

// 새로운 작명 지침을 사용하여 blue 빈 가져오기
applicationContext.getBean("ColoursConfiguration.blue");