我正在尝试为我的DeviceRepository(JPA)启动一个junit测试,我通过@RunWith(SpringJUnit4ClassRunner.class)和@SpringBootTest(classes = xxxx.class)运行junit测试用例,并且当应用程序启动时,控制台中显示诸如“ [Xlint:cantFindType] [AppClassLoader @ xxxx]错误无法确定缺少类型为xxxx的实现的接口”之类的错误。这些错误不会使应用程序无法启动,但会使Spring Data Repository在41625ms内进行扫描,速度较慢像地狱一样。这种情况只发生在junit测试中。 奇怪的是,当我直接运行我的应用程序时,两个问题都没有显示。 在我的项目中添加Spring-boot-data-starter-jpa依赖项后,就会出现这些问题。 下面的错误消息只是其中的一部分,它们都是同类错误,但缺少不同的类。 Stack information is here
Spring数据存储库扫描问题: [main] .s.d.r.c.RepositoryConfigurationDelegate:在41625ms内完成Spring Data信息库扫描。找到1个存储库接口。
我的DeviceRepository类:
@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>