Разница между контроллером Spring и конечной точкой

Привод Spring boot предоставляет некоторые конечные точки, такие как состояние, показатели, информация. Это также позволяет нам писать собственные пользовательские конечные точки.

У меня есть требование, по которому мне нужно предоставить статистику некоторых показателей Dropwizard в качестве конечной точки. Последняя версия Spring-boot поддерживает метрики dropwizard, но это не соответствует моим требованиям, поэтому я планирую иметь свою собственную конечную точку в Интернете /stats

Но сейчас я не могу решить, должен ли это быть обычный Controller или нестандартный привод Endpoint. В чем разница между этими двумя терминами?

PS: вопрос действительно кажется основанием для мнения, но ответ должен быть достаточно простым.


person sidgate    schedule 15.03.2016    source источник
comment
как я понимаю (не уверен, поэтому только комментарий), Endpoint - это точка входа для некоторой структуры мониторинга ootb при весенней загрузке, содержащей такие классы, как HealthIndicator и т. д., и не является контроллером. Некоторая функциональность контроллера может (!) Быть добавлена ​​путем преобразования Endpoint в MvcEndpoint, потому что концепция обслуживания данных в формате json через http очень близка к той, которую предоставляет @(Rest)Controller. здесь вы можете найти дополнительную информацию I думаю, как и в документах. надеюсь это поможет?   -  person Dominik    schedule 15.03.2016


Ответы (1)


Конечные точки - это более конкретная или своеобразная версия Контроллера.

Вместо того, чтобы полагаться на представление (например, JSP) для визуализации данных модели в HTML, конечная точка просто возвращает данные для записи непосредственно в тело ответа (аналогично выполнению @ResponseBody в контроллере).

Actuator Endpoint - лучший вариант по следующим причинам:

  1. Конечные точки предназначены для выполнения узкоспециализированной задачи печати вашего объекта (Json) по HTTP, что именно то, что вы хотите здесь сделать.
  2. Чтобы отделить код monitor-n-manage от кода вашего приложения.
  3. Чтобы все было чище и связно
person Manali Bhosale    schedule 15.03.2016
comment
еще одно тонкое отличие: @Endpoints иногда может подвергаться JMX (по сравнению с клиентами REST / WebFlux и т. д.) @Controller предназначен для использования в мире Spring MVC. - person Anand Rockzz; 18.10.2018