Как получить список конечных точек после запуска, Spring Загрузка

У меня есть сервис отдыха, написанный при загрузке spring. Я хочу получить все конечные точки после запуска. Как я могу это достичь? Назначение этого, я хочу сохранить все конечные точки в db после запуска (если они еще не существуют) и использовать их для авторизации. Эти записи будут введены в роли, и роли будут использоваться для создания токенов.

Ответ 1

Вы можете получить RequestMappingHandlerMapping в начале контекста приложения.

public class EndpointsListener implements ApplicationListener {

    @Override
    public void onApplicationEvent(ApplicationEvent event) {
        if (event instanceof ContextRefreshedEvent) {
            ApplicationContext applicationContext = ((ContextRefreshedEvent) event).getApplicationContext();
            applicationContext.getBean(RequestMappingHandlerMapping.class).getHandlerMethods().forEach(/*Write your code here */);
        }
    }
}

В качестве альтернативы вы также можете использовать привод Spring boot (вы также можете использовать привод, даже если вы не используете Spring boot), который предоставляет другую конечную точку (конечную точку сопоставлений), в которой перечислены все конечные точки в json. Вы можете нажать эту конечную точку и проанализировать JSON, чтобы получить список конечных точек.

https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-endpoints

Ответ 2

Вам нужно 3 шага, чтобы выставить все конечные точки:

  1. включить Spring Boot Actuator
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
  1. включить конечные точки

В Spring Boot 2 Actuator поставляется с большинством отключенных конечных точек, по умолчанию доступны только 2:

/health
/info

Если вы хотите включить все конечные точки, просто установите:

management.endpoints.web.exposure.include=*

Для более подробной информации, обратитесь к:

https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html

  1. идти!

Http://хост/привод/отображение

Кстати, в Spring Boot 2 Actuator упрощает модель безопасности, объединяя ее с прикладной.

Для более подробной информации, обратитесь к этой статье:

https://www.baeldung.com/spring-boot-actuators