Это мой HandlerInterceptor
, где я использую postHandle
.Для каждого ДОБАВИТЬ URL я называю этот перехватчик.В этом перехватчике я автоматически подключил свой LogTraceService
, в котором есть репозиторий JPA для записи в базу данных Mongo.Но я получаю ошибку нулевого указателя на член класса "logTraceServer".
Я хочу записывать в базу данных Монго при каждом сохранении.Вот почему я написал этот класс.
public class MongoDbLogs implements HandlerInterceptor{
@Autowired
LogTraceService logTraceService; // This is my Service which have JPA Repository to access Mongo Db. This Service is working perfectly find if I use controller.
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
@Nullable ModelAndView modelAndView) throws Exception {
mongoDbLogs( request,response);
}
protected void mongoDbLogs(HttpServletRequest request, HttpServletResponse response) {
String userId =(request.getHeader("userId")!=null) ? request.getHeader("userId") :null;
String ticket =(request.getHeader("ticket")!=null) ? request.getHeader("ticket") :null;
LogTrace logTrace = new LogTrace();
logTrace.setUserId(request.getHeader("userId"));
Map<String, String> logMap = new HashMap();
logMap.put(response.getClass().getName(), response.toString());
logTrace.setUserSettings(logMap);
logTraceService.add(logTrace); // Here I am getting null pointer error for "logTraceService"
}
}
============================================
@ Публичный класс конфигурации AppConfig реализует WebMvcConfigurer {
@Bean
public MessageSource messageSource() {
ReloadableResourceBundleMessageSource messageSource = new ReloadableResourceBundleMessageSource();
messageSource.setBasename("classpath:messages/message_tech");
messageSource.setDefaultEncoding("UTF-8");
return messageSource;
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new MongoDbLogs()).addPathPatterns("/**/add*");
}
}
ПРИМЕЧАНИЕ. - Мой перехватчик совершенен, его исполняют, но проблема в том, что я получаю, что logTraceService является нулевым, даже если этоАвтосоединение.