Spring MVC Controller общая логика

Я пытаюсь найти наилучший способ написать общую логику в приложении Spring MVC. У меня есть контроллер A, который будет вызываться, который будет вызывать любой другой контроллер на основе атрибутов запроса, которые возвращают данные.

Я хочу получить ответ обратно в контроллер А, чтобы я мог написать общую логику обогащения и отправить его обратно в браузер. Моя цель — написать логику обогащения только в одном месте, и каждый запрос проходит через нее.

0

Решение

то, что вы ищете, это так называемый «HandlerInterceptor» или «controllerAdvice» —

я сделал небольшой репозиторий на GitHub о Spring MVC Interception Некоторое время назад — это небольшое приложение для весенней загрузки, которое показывает способы перехвата запроса с помощью Spring MVC.

Вопрос всегда в том, какова ваша главная цель:

  1. Вы хотите просто манипулировать выводом (например, добавляя общее поле), используя ControllerAdvice

  2. Вы хотите вызвать логику до и после, не манипулируя запросом -> перейти к фильтрам

  3. Вы хотите фундаментально изменить объект (например, обернуть его другим объектом), перейдите на HandlerInterceptor

0

Другие решения

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

Например :

public class AbstractController{
// common logic
}

public class A extends AbstractController{}

public class B extends AbstractController{}

public class C extends AbstractController{}
0

По вопросам рекламы [email protected]