У меня возникла пара проблем, связанных с перехватчиками, после обновления до 3.1.В версии 3.0.x и более ранних версиях я использовал следующий шаблон для перехвата контроллеров Spring MVC:
- Создайте интерфейс, называемый чем-то вроде RoleAware, который определяет один или несколько сеттеров.
- Имеет один илибольше контроллеров реализуют интерфейс
- Зарегистрируйте новый глобальный перехватчик, который выполняет проверку «экземпляр обработчика RoleAware» в preHandle
- Если перехватчик является экземпляром RoleAware, то установите один или несколько объектов наРеализация контроллера
Первая проблема заключается в том, что что-то изменилось в 3.1, поэтому проверка экземпляра не удалась.Я исправил это, используя новые явные элементы в моей конфигурации контекста сервлета.Ничего страшного и немного более чистый подход, чем проверка instanceof.
Вторая проблема заключается в том, что когда я пытаюсь привести обработчик (Controller) к моему интерфейсу RoleAware, я получаю ClassCastException.
Мне бы хотелось решение, которое позволило бы мне продолжать произвольно устанавливать объекты на перехваченных контроллерах.Например, установите объект Role на любых перехваченных контроллерах.Кроме того, я хотел бы узнать больше об изменениях в версии 3.1, которые вызывают этот сбой.