Naming strategy
원문 : 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");