Я пытаюсь внедрить класс MeasurementService в класс аннотаций AspectJ с именем MeasurementAspect, но я получил ошибку NullPointerException и проверил, что в данном случае внедрение MeasurementService является нулевым. Затем сам введенный класс запускается в одном из советов.
Сам класс MeasurementAspect не имеет конструктора, поскольку я думаю, что в нем нет необходимости, и все рекомендации будут внедрены в соответствующие методы и выполнены автоматически.
Вот выдержка из MeasurementAspect (так как она слишком длинная, чтобы копировать все):
@Aspect
public class MeasurementAspect {
...
private @Inject MeasurementService measurementService;
private final MeasureDownloadDto measureDownloadDto = new MeasureDownloadDto();
private final MeasureUploadDto measureUploadDto = new MeasureUploadDto();
...
@Around("execution(* *.storeFile(..))")
public Object CalculateUploadMetadata(ProceedingJoinPoint joinPoint) throws Throwable {
start = System.nanoTime();
Object result = joinPoint.proceed();
end = System.nanoTime();
duration = end - start;
setDurationUploadMetadata(duration);
measureUploadDto.setDurationUploadMetadata(duration);
System.err.println(
SDF.format(new Date()) + " Elapsed time for uploading meta data (ns) = " + getDurationUploadMetadata());
System.err.println("measurementService" + measurementService);
measurementService.storeUploadDto(measureUploadDto);
durUploadEachChunk.clear();
return result;
}
...
}
Вот класс MeasurementService, который будет внедрен:
public class MeasurementService {
private final RemoteStatisticService remoteStatisticService;
@Inject
public MeasurementService(RemoteStatisticService remoteStatisticService) {
this.remoteStatisticService = remoteStatisticService;
}
public void storeUploadDto(MeasureUploadDto measureUploadDto) {
remoteStatisticService.postUploadStatistic(measureUploadDto);
}
public void storeDownloadDto(MeasureDownloadDto measureDownloadDto) {
remoteStatisticService.postDownloadStatistic(measureDownloadDto);
}
}
Любая помощь приветствуется. Спасибо
ps: это все еще связано с моим другим вопросом ошибка NoAspectBoundException в конструкторе класса класса AspectJ с внедрением зависимостей, я надеюсь, что он может дать полную точку зрения на проблему