В моем приложении 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 Autowiring на Java 8 (необязательно), и он не работает должным образом.