当前位置: 首页 > 知识库问答 >
问题:

@datajpatest在使用Eureka/Feign时失败

朱岳
2023-03-14
@SpringBootApplication
@EnableFeignClients
@EnableRabbit
@EnableDiscoveryClient
@EnableTransactionManagement(proxyTargetClass = true)
public class EventServiceApplication {

    public static void main(String[] args) throws Exception {
        SpringApplication.run(EventServiceApplication.class, args);
    }
}
@RunWith(SpringRunner.class)
@DataJpaTest(showSql = true)
public class EventRepositoryTest {

    @Autowired
    private TestEntityManager entityManager;

    @Autowired
    private EventRepository repository;

    @Test
    public void testPersist() {
        this.entityManager.persist(new PhoneCall());
        List<Event> list = this.repository.findAll();

        assertEquals(1, list.size());
    }
}
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [com.netflix.discovery.EurekaClient] found for dependency [com.netflix.discovery.EurekaClient]: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {}

此处为完整stacktrace

有没有办法解决这个问题?我已经看到它是由@EnableFeignClients和@EnableDiscoveryClient注释引起的。

共有1个答案

柯易安
2023-03-14

最后我设法以以下方式解决了我的问题:

>

  • 添加了包含以下内容的bootstrap.yml:

    eureka:
      client:
        enabled: false
     spring:
       cloud:
         discovery:
           enabled: false
       config:
           enabled: false
    

    我编写了一个测试配置,并在测试中引用了它:

    @ContextConfiguration(classes = EventServiceApplicationTest.class)
    
    @SpringBootApplication
    @EnableTransactionManagement(proxyTargetClass = true)
    public class EventServiceApplicationTest {}
    

  •  类似资料:
    • 本文向大家介绍Spring-cloud-eureka使用feign调用服务接口,包括了Spring-cloud-eureka使用feign调用服务接口的使用技巧和注意事项,需要的朋友参考一下 Spring-cloud-eureka使用feign调用服务接口的具体方法,供大家参考,具体内容如下 基于spring-boot 2.0以上版本完成的微服务架构 pom.xml feignClient fin

    • 我想使用Feign Client、Ribbon和Eureka实现一个弹性的微服务架构,所以我遇到了一个问题。当一个微服务目标关闭时,我希望重定向到另一个微服务实例,而不让用户看到它。例如,我有4个微服务B实例和一个实例A:

    • 我正在尝试在Spring Boot项目中加载应用程序属性进行测试。我也在使用@DataJpaTest注释。许多人建议使用@TestProperty tySource注释与@datajpaTest的组合,但它不是加载属性。如果我使用@SpringBooTest,它就是加载属性。 我的应用程序属性文件位于主/资源/文件夹中。如果我使用,它正在工作,但我有 这未能使用Spring启动测试进行自动配置。我

    • 我正试图让spring slueth通过我们的系统提供追踪身份。 在检查其他服务的日志时,我注意到正在生成新的ID。

    • 切换到eureka分支

    • 我最近把Spring Boot从2.3升级到了2.4。因为所有存储库测试都失败,并显示错误消息: 我的测试如下: 这是存储库类: 正如我所说,这发生在更新之后。在更新2.3.12版本的Spring Boot之前,一切正常。我已经搜索了发行说明,但找不到任何可能导致此问题的内容。任何人都可以帮忙吗?