Есть ли в весенней загрузке конфигурация для фильтрации http-запросов, чтобы игнорировать создание @ModelAttribute? - PullRequest
0 голосов
/ 27 марта 2020

Представьте себе следующую ситуацию: приложению требуется глобальный атрибут модели, и эта модель должна быть извлечена из базы данных в соответствии с основной аутентификацией, это пример:

@ControllerAdvice
public class GlobalController {

    @ModelAttribute("currentPage")
    public CurrentPage getCurrentPage(final Authentication authentication) {
        if (authentication != null && authentication.getPrincipal() instanceof User) {
            return pageService.getCurrentPage((User) authentication.getPrincipal());
        }
        return null;
    }

}

Теперь для запроса к На домашней странице, например, с аутентификацией, модель «currentPage» присваивается представлению после построения с помощью службы «pageSevrice» по запросу к базе данных. Хорошо, все в порядке, ничего не сложно!

Теперь, зная, что домашняя страница после загрузки представления запускает скрипт, в котором она хочет получить другие данные, например, AJAX запросами. Совершенно новый http-запрос к приложению, Spring создаст новый @ModelAttribute, новый «currentPage», новый доступ к базе данных. Однако этот новый атрибут модели уже используется визуально, в некоторых заклинаниях он бесполезен!

Также, например, для URL-адресов изображений любой запрос подразумевает создание этой модели снова !!

Итак, возникает вопрос , существует ли конфигурация, которая указывает Spring игнорировать создание @ModelAttribute, найденного в глобальном @ControllerAdvice для определенных запросов?

Мы ищем решение вне @SesssionAttribute. Мы не хотим сохранять модель в сеансе, и мы использовали «spring.jpa.open-in-view» в false.

Заранее благодарим вас за любые предложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...