Весенняя облачность аннотации: Автопроводка не работает - PullRequest
0 голосов
/ 01 апреля 2020

В моем приложении настроен 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 как-то связан с этим. Есть идеи?

1 Ответ

0 голосов
/ 02 апреля 2020

Пожалуйста, не используйте полевую инъекцию, используйте конструктор. Также новый диапазон там не имеет смысла, потому что у вас уже есть новый диапазон, созданный платформой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...