コンパイルが通っても、実行時にエラーとなるため、重複しない名前をつけないといけない。1つ1つ手でつけると間違いが起こりやすいため、自動で付けるようにする。
##ルートパス直下等に名前付けクラスを定義
FQCNBeanNameGenerator.java
public class FQCNBeanNameGenerator extends AnnotationBeanNameGenerator {
@Override
protected String buildDefaultBeanName(BeanDefinition definition) {
return definition.getBeanClassName();
}
}
##servlet-context.xmlを変更
変更前:servlet-context.xml
<context:component-scan base-package="jp.co.test" />
変更後:servlet-context.xml
<context:component-scan
base-package="jp.co.test"
name-generator="jp.co.test.FQCNBeanNameGenerator" />
##参考
https://qiita.com/sinsengumi/items/655d9f3ff49646dfe61a
http://d.hatena.ne.jp/ocs/20101129/1291034951