В моем приложении настроен Spring Cloud Sleuth (а также zipkin). У меня есть контроллер, который вызывает службу, которая, в свою очередь, вызывает хранилище и, наконец, базу данных.
Настройка работает нормально, Sleuth генерирует идентификаторы диапазона и также виден в zipkin. Я хотел попробовать создать span для нескольких внутренних компонентов и методов. Мне попалось Управление пролетами с аннотациями . Это не похоже на работу.
Когда я использую любую из упомянутых здесь аннотаций, например @NewSpan
или @ContinueSpan
, автопроводка перестает работать. Мой класс обслуживания, который автоматически подключен в контроллере, равен null
. Если я удаляю эти аннотации, все снова работает.
Я использую.
spring-boot 2.2.5.RELEASE
spring-cloud.version Hoxton.SR3
У меня есть эти зависимости в моем поме
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-sleuth</artifactId> // This is pulling 2.2.2.RELEASE version
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zipkin</artifactId>
</dependency>
Вот пример кода
@RestController
class SomeController {
@Autowired
SomeService someService;
@GetMapping("/init")
@NewSpan("init")
private void init() {
someService.init();
}
}
И мой Класс обслуживания подобен
@Service
Class SomeService {
.....
@ContinueSpan(log = "init")
public void init() {
}
}
Я думаю, Spring-Aop как-то связан с этим. Есть идеи?