我正在尝试将一个名为MeasurementService的类注入名为MeasurementAspect的AspectJ Annotation类中,但我收到了NullPointerException的错误,并且在此情况下我检查了注入MeasurementService为null。然后在其中一个建议中触发注入的类本身。
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 error in class constructor of AspectJ class with Dependency Injection有关,我希望它可以给出整个问题的观点