ComponentScan.basePackageClasses vs ComponentScan.basePackages para registrar um único Spring webMVC Controller?

Quero adicionar uma única classe de controlador específica ao meu Spring WebApplicationContext. Encontrei o seguinte exemplo: (está em Scala, mas é adaptado daqui:usando ComponentScan ou context: component-scan com apenas uma classe)

@Configuration 
@ComponentScan(
  basePackages = Array("com.example.controllers"),
  useDefaultFilters = false,
  includeFilters = Array(
    new ComponentScan.Filter(`type` = FilterType.ASSIGNABLE_TYPE,
      value = Array(classOf[com.example.controllers.MyController]))))
class MyConfig {
}

Isso funciona bem (mas é muito detalhado). Mas o @ComponentScan da Spring também tem basePackageClasses

@Configuration 
@ComponentScan( basePackageClasses=Array(classOf[com.example.controllers.MyController])) 
class MyConfig {
}

De basePackageClasses, os documentos do Spring dizem:

Type-safe alternative to basePackages() for specifying the packages to
scan for annotated components.

No entanto, enquanto o primeiro ComponentScan adiciona corretamente apenas com.example.controllers.MyController, mas o segundo faz com que todo o meu @Controller seja verificado e adicionado! Por quê? Qual é o uso de basePackageClasses?

Exemplo como:https://github.com/mikaelhg/springmvc-example/blob/master/src/main/java/mikaelhg/example/ExampleConfiguration.java sugerem que basePackageClasses pode ser usado para carregar um único componente.

Atualizar:

Como um aparte, substituindo:

@Configuration 
@ComponentScan(
  basePackages = Array("com.example.controllers"),
  useDefaultFilters = false,
  includeFilters = Array(
    new ComponentScan.Filter(`type` = FilterType.ASSIGNABLE_TYPE,
      value = Array(classOf[com.example.controllers.MyController]))))
class MyConfig {
}

com

@Configuration 
class MyConfig {

  @Bean
  var myController = new com.example.controllers.MyController

}

parece que o MyController nunca fica conectado ao servlet (o comportamento foi alterado para 404-NotFound) - quando adicionado a um WebApplicationContext.

questionAnswers(1)

yourAnswerToTheQuestion