7.10.6 Naming autodetected components

当一个组件被扫描过程自动发觉时,其bean的名字由BeanNameGenerator生成,
如果@Component @Repository @Service @Controller注解有value值,则使用value值
如果没有value值,则使用uncapitalized non-qualified class name

这个bean的名字是myMovieLister

@Service("myMovieLister")
public class SimpleMovieLister{
    // ...
}

这个bean的名字是movieFinderImpl

@Repository
public class MovieFinderImpl implements MovieFinder{

}

如果你不想使用默认的bean命名策略,你可以提供一个自定义的bean命名策略。首先实现BeanNameGenerator接口,确保包含一个无参构造器。然后提供一个fully-qualified class name当配置scanner时:

@Configuration
@ComponentScan(basePackages = "org.example", nameGenerator = MyNameGenerator.class)
public class AppConfig{
    ...
}

results matching ""

    No results matching ""