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{
...
}