Добавление атрибутов к модели всех контроллеров весной 3

Каждый отдельный вид моего приложения весной 3 имеет набор атрибутов, на которые они могут положиться. Так что первая строка каждого контроллера - это что-то вроде:

ControllerHelper.addDefaultModel(model, personManager, request);

Там я добавлю

  • пользовательский объект и полное имя, полученное из базы данных, если человек зарегистрирован в
  • наборе переменных, которые обычно устанавливаются один раз (например imagesHost)
  • set of languages a visitor can switch to
  • current language
  • some statistics (e.g. total # of people in our system)

Это все позволяет каждому просмотру отображать зарегистрированное имя пользователя, легко ссылаться на расположение изображения, список языков и некоторую общую статистику по сайту.

Итак, вопрос в том, является ли объект модели контроллера лучшим местом для хранения всех данных, или есть более удобное место, которое делает доступ к этой информации для просмотров таким же простым?

И, во-вторых, я бы очень хотел, чтобы строка ControllerHelper не была первой строкой в каждом контроллере. На самом деле это не всегда первая строка, иногда я сначала проверяю, нужно ли мне перенаправлять в этот контроллер, потому что я не хочу тратить ресурсы, заполняя модель без всякой причины. Может быть, фильтр или аннотация, или какой-нибудь механизм обратного вызова пружины могли бы убедиться, что код ControllerHelper называется после завершения работы контроллера, но правильно перед отрисовывается вид, пропуская это, если редирект был возвращен?

53
задан tereško 7 September 2014 в 10:09
поделиться