我可以在Spring中设置默认的AnnotationBeanNameGenerator吗?

时间:2016-02-22 09:26:43

标签: java spring

我在测试套件中为我的应用程序使用@ComponentScan个多个位置。我想在Spring中替换默认的bean名称生成,所以我自己创建了这样的生成器:

public class FullyQualifiedAnnotationBeanNameGenerator extends AnnotationBeanNameGenerator {
    protected String buildDefaultBeanName(BeanDefinition definition) {
        return definition.getBeanClassName();
    }
}

要使用生成器,我这样做:

@ComponentScan(nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)

问题是,对于我的测试配置类(使用@ComponentScan注释的类)中的每个@Configuration,我必须重复nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class

我是否可以告诉Spring始终使用FullyQualifiedAnnotationBeanNameGenerator作为nameGenerator?我希望它是默认的。

1 个答案:

答案 0 :(得分:1)

只需按照以下方式创建自己的注释:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@ComponentScan(nameGenerator = FullyQualifiedAnnotationBeanNameGenerator.class)
public @interface MyComponentScan{

}