Я пытаюсь запустить тест junit для своего DeviceRepository (JPA), я запускаю тестовый случай junit через @RunWith (SpringJUnit4ClassRunner.class) и @SpringBootTest (classes = xxxx.class), и когда приложение запускается, ошибки типа «[Xlint: cantFindType] [AppClassLoader @ xxxx] не могут определить реализованные интерфейсы отсутствующего типа xxxx», отображаемые в консоли. Эти ошибки не приведут к сбою при запуске приложения, но сделают сканирование репозитория Spring Data за 41625 мс, медленно Как в аду. Такая ситуация случается только в тесте джунтов.
Странно то, что обе проблемы не отображаются, когда я запускаю свое приложение напрямую.
Эти проблемы появляются после того, как я добавил в свой проект зависимость Spring-boot-data-starter-jpa.
Приведенное ниже сообщение об ошибке является лишь его частью, они все одинаковые, но отсутствуют разные классы.
Информация о стеке здесь
Проблема сканирования хранилища данных Spring:
[main] .s.d.r.c.RepositoryConfigurationDelegate: Завершено сканирование хранилища данных Spring за 41625 мс. Найдено 1 репозиторий интерфейсов.
Мой класс репозитория устройств:
@Repository
public interface DeviceRepository extends JpaRepository<Device,
Integer> {
@Query("select d from Device d where device_id = ?1")
public Device findDevice(String device_id);
@Query("update Device set create_time = ?2 where device_id = ?
1")
public Device findDevice(String device_id, long create_time);
}
Мой класс TestCase:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = DubboCallerApplication.class)
public class JpaTest{
@Autowired
DeviceRepository deviceRepository;
@Test
public void test(){
Device device =
deviceRepository.findDevice("xxxxxx");
System.out.println(device);
}
}
Мой класс SpringApplication:
@SpringBootApplication
//@EnableDubboConfiguration
public class DubboCallerApplication {
public static void main(String[] args) {
SpringApplication app = new
SpringApplication(DubboCallerApplication.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
}
}
Мой pom.xml:
<properties>
<project.build.sourceEncoding>UTF-
8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-
8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<aspectj.version>1.8.10</aspectj.version>
<allure.results.directory>
${project.build.directory}/allure-results
</allure.results.directory>
<my.target.suite></my.target.suite>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
</dependencies>