У меня есть сервис отдыха, написанный при загрузке spring. Я хочу получить все конечные точки после запуска. Как я могу это достичь? Назначение этого, я хочу сохранить все конечные точки в db после запуска (если они еще не существуют) и использовать их для авторизации. Эти записи будут введены в роли, и роли будут использоваться для создания токенов.
Как получить список конечных точек после запуска, Spring Загрузка
Ответ 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, чтобы получить список конечных точек.
Ответ 2
Вам нужно 3 шага, чтобы выставить все конечные точки:
- включить Spring Boot Actuator
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- включить конечные точки
В 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
- идти!
Http://хост/привод/отображение
Кстати, в Spring Boot 2 Actuator упрощает модель безопасности, объединяя ее с прикладной.
Для более подробной информации, обратитесь к этой статье: