У меня есть служба аутентификации и некоторые методы контроллера для получения пользовательских данных на основе идентификатора, имени пользователя и т. Д. Все эти методы HTTP.GET требуют много времени для обработки, и новый мониторинг реликвий показывает, что DispatcherServlet.ProcessHandlerException () занимает около 70% времени.Я использую 4.2.1.RELEASE версию Spring.Мы будем благодарны за любую помощь.
@ApiOperation(value = "Get User Details From Id",
notes = "Get the UserDetails object that describes the user", tags = {"/user"})
@ApiImplicitParams({@ApiImplicitParam(dataType = "String", name = "Authorization", paramType = "header")})
@GetMapping(value = "/users/realm/{realm}/user/{userName}", produces = Versions.V1_0)
@Log(level = Log.Level.TRACE)
public UserDetails getUserDetailsFromUserId(
@ApiParam(value = "The user's details", required = true) @PathVariable(name = "realm") String realm,
@ApiParam(value = "Include profiles in user's details") @RequestParam(name = "includeProfiles", required = false) Boolean includeProfiles,
@PathVariable(name = "userName") String userName) {
LOGGER.traceEntry(userName, realm, includeProfiles);
com.nextiva.authentication.model.UserDetails result = userManagementService.getUserDetails(userName, realm, includeProfiles);
if (includeProfiles != null && includeProfiles) {
result.setProfiles(result.getProfiles().stream().filter(p -> NumberUtils.isDigits(p.getCorpAcctNbr()) || StringUtils.isBlank(p.getCorpAcctNbr())).collect(Collectors.toList()));
}
LOGGER.traceExit();
return userDetailsConverter.convertFromModelToV1(result);
}
Пример кода контроллера прилагается.