Я хотел интегрировать информацию о приложении в свое приложение для загрузки Spring** (v3.x.x)**, и для этого я использовал приведенную ниже зависимость в моем build.gradle.
implementation 'com.microsoft.azure:applicationinsights-spring-boot-starter:2.6.4'
В моем контроллере я внедрил bean-компонент TelemetryClient, например:
@RestController
@RequestMapping("/")
public class UserController {
@Autowired
TelemetryClient telemetryClient;
@GetMapping("/greetings")
public String greetings() {
// send event
telemetryClient.trackEvent("URI /greeting is triggered");
return "Hello World!";
}
}
И, чтобы подключиться к аналитике приложений Azure, я использовал:
APPLICATIONINSIGHTS_CONNECTION_STRING=somevalue
в качестве переменной среды при запуске приложения в IntellijIdea.
Теперь приложение запускается и жалуется на:
***************************
APPLICATION FAILED TO START
***************************
Description:
Field telemetryClient in com.example.demo.app.insights.UserController required a bean of type 'com.microsoft.applicationinsights.TelemetryClient' that could not be found.
The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)
Action:
Consider defining a bean of type 'com.microsoft.applicationinsights.TelemetryClient' in your configuration.
Но как только я понизил версию весенней загрузки с 3.x.x до 2.7.11, она отлично работает с тем же фрагментом кода и запускает приложение.
Кто-нибудь еще сталкивался с подобной проблемой appinsights с весенней загрузкой на 3.xx? или есть идеи по исправлению в последней весенней загрузочной версии?
Я пробовал с той же зависимостью с версией spring boot 3.xx и получил ту же ошибку:
Результат:
Я получил ту же ошибку, что и вы упомянули выше:
3.x.x
. Последняя совместимая версия — 2.7.x
.3.0.0-beta.1
, и она совместима только с версией spring boot 2.x.x
.2.x.x
версии, а не 3.x.x
.Использованная литература:
Обратитесь к проблеме github, касающейся выпуска библиотеки Application Insights SpringBoot Starter.
Эта проблема была решена в https://github.com/microsoft/ApplicationInsights-Java/issues/3016
Ниже зависимость совместима с Spring Boot 3.x:
api('com.microsoft.azure:applicationinsights-core:3.4.11');
// api 'com.microsoft.azure:applicationinsights-spring-boot-starter:2.6.4' // not compatible with spring 3.x
После этого TelemetryClient Bean может быть введен следующим образом:
@RestController
@RequestMapping("/")
public class UserController {
private final TelemetryClient telemetryClient = new TelemetryClient();
@GetMapping("/greetings")
public String greetings() {
// send event
telemetryClient.trackEvent("URI /greeting is triggered");
return "Hello World!";
}
}
Здравствуйте, зависимость была старым способом использования информации о приложении; вместо этого я предлагаю вам использовать агент learn.microsoft.com/en-us/azure/azure-monitor/app/…