Estoy desarrollando un proyecto de varios módulos usando Spring Boot 2.0.5.RELEASE, Java 8. Consta de modelo, DAO y varios microservicios. El uso de beans DAO lo proporciona la anotación @Import, como se indica a continuación:

Microservicio:

@SpringBootApplication
@EnableBatchProcessing
@EnableDao
public class Application {

    public static ConfigurableApplicationContext CONTEXT;

    public static void main(String[] args) {
        CONTEXT = SpringApplication.run(Application.class, args);
    }
}

DAO:

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Import(DaoConfiguration.class)
public @interface EnableDao {
/* empty */
}
@Configuration
@EntityScan("blah.blah.blah.dao")
@EnableJpaRepositories("blah.blah.blah.dao.repo")
public class DaoConfiguration {
/* Some tricks with EntityManager also */
}
@Repository
public interface SomethingRepo extends JpaRepository<Something, Long> {
/* + some default methods */
}

Pero tengo ejecutando el código:

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'blah.blah.blah.dao.repo.SomethingRepo' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}

¿Por qué diablos mi código no crea el bean? ¿Cuál puede ser la causa?

2
Anton Volkov 24 oct. 2019 a las 19:26

1 respuesta

La mejor respuesta

Todavía no sé por qué tiene tal comportamiento, pero encontré la solución agregando una anotación @EnableJpaRepositories(basePackageClasses = {SomethingRepo.class}) a la Application.class

-1
Anton Volkov 30 oct. 2019 a las 11:57