作者:手机用户2502900625 | 来源:互联网 | 2023-02-06 05:21
我有一个用弹簧靴写的休息服务.我希望在启动后获得所有端点.我怎样才能实现这一目标?我的目的是,我希望在启动后将所有端点保存到数据库(如果它们尚不存在)并使用这些端点进行授权.这些条目将注入角色,角色将用于创建令牌.
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引导执行器(你也可以使用actutator,即使你没有使用Spring引导),它会暴露另一个端点(映射端点),它列出了json中的所有端点.您可以点击此端点并解析json以获取端点列表.
https://docs.spring.io/spring-boot/docs/current/reference/html/production-ready-endpoints.html#production-ready-endpoints