通过@RunWith(SpringJUnit4ClassRunner.class)启动我的应用程序时,出现[Xlint:cantFindType]错误

时间:2019-01-10 12:43:13

标签: java spring-boot spring-data-jpa spring-boot-test

我正在尝试为我的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>

0 个答案:

没有答案