在我的Spring Boot 2.1应用程序中,我有一个服务类,大概长这个样子:
@Service
public class AImpl implements A {
@Autowired
B bservice;
}
然后自动装配的服务B看起来像这样:
@Service
public class BImpl implements B {
@Autowired(required = false)
@Lazy
org.springframework.web.client.RestOperations restTemplate;
}
在我的测试类中:
@RunWith(SpringRunner.class)
@ContextConfiguration(classes = {...})
@DataJpaTest
@EnableJpaRepositories("com.xxx")
@EntityScan("com.xxx")
public class CImplTest {
@Autowired
B bservice;
@Autowired
A aservice;
}
当我运行测试时,出现以下错误信息:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.web.client.RestOperations' available: Optional dependency not present for lazy injection point
然而在运行应用程序时,我并没有遇到这个问题,它能够正常运行。
注意:我已经尝试将rstTemplate自动装配替换为Java 8 Optional,但效果不佳。
RestTemplate
bean? - g00glen00bBImpl.restTemplate
时发生?如果您不触摸可选bean,则在我的本地没有问题。 - buræquete