Beans в разностных пакетах выдает ошибку «Нет доступного компонента типа»

#spring #spring-boot #spring-data-jpa

#spring #spring-boot #spring-data-jpa

Вопрос:

Сведения о проекте: Один пакет репозитория, содержащий (src / main / java -> com.pluralSight.Repository)

 @Component
public interface FlightRepository extends CrudRepository<Flight, Long>
  

Один пакет объектов, содержащий (src / main / java -> com.pluralSight.Сущность)

 @Entity
public class Flight
  

Я тестирую репозиторий «Сохранить» с помощью тестового примера, написанного в springDataApplicationTests.java внизу (src / test / java -> com.pluralSight.SpringData)

 @Component
@DataJpaTest
class SpringDataApplicationTests {
    
    @Autowired
    FlightRepository repository;

    @Test
    void testCrudRepository() {
        
        Flight f = new Flight();
        f.setArrivedFrom("America");
        f.setDeparturedTo("Dubai");
        
        repository.save(f);
        
        Assertions.assertThat(repository.findAll()).hasSize(1);
        
    }

}
  

Я создал два appConfig.java (попытка поиска и пробных решений).первый под src / main / java, а второй под src / test / java

  @ComponentScan("com.pluralSight.Repository")
     @Configuration
     public class appConfig {
     }
  

Но когда я запускаю тест, получаю ошибку

org.springframework.beans.factory.Исключение NoSuchBeanDefinitionException: нет подходящего компонента типа ‘com.pluralSight.Repository.Доступно FlightRepository: ожидается наличие как минимум 1 компонента, который квалифицируется как кандидат на автоматическое подключение. Аннотации зависимостей:

Комментарии:

1. Удалите эти классы конфигурации. Убедитесь, что ваш @SpringBootApplication аннотированный класс находится в com.pluralSight пакете, а не в подпакете.

2. M. deinum man это сработало. SpringBootApplication было внутри подпакета. Я переместил его в com.pluralsight @M. Deinum