Spring Boot动态注册/删除http资源路径的方法
Spring Boot开发中,有时会遇到某些url资源路径会有有效期的限制,超过有效期的话就不能正常访问,这时可以通过Spring MVC提供的RequestMappingHandlerMapping来编程式控制动态注册/删除资源路径,达到我们的目的,下面来看下怎么实现~
参考Spring官方文档说明:https://docs.spring.io/spring-framework/docs/5.3.6/reference/html/web.html#mvc-ann-requestmapping-registration
工作原理
RequestMappingHandlerMapping继承了AbstractHandlerMethodMapping,其中提供了registerMapping与unregisterMapping,分别用于注册Mapping信息与删除Mapping信息
实现注册信息
实现删除注册信息
通过这两个方法,我们就可以在工程中方便的编写注册与删除url资源路径的逻辑了
使用方式
1.编写注册/删除用的Controller层方法
示例代码:https://github.com/netbuffer/spring-boot-demo/blob/master/src/main/java/cn/netbuffer/springboot/demo/controller/RequestMappingController.java
2.编写测试用的控制器类,来作为动态注册资源路径的处理器
示例代码:https://github.com/netbuffer/spring-boot-demo/blob/master/src/main/java/cn/netbuffer/springboot/demo/controller/DynamicHandler.java
运行效果
1.启动工程,访问/mapping/registerMapping接口注册Mapping映射信息,来实现动态资源路径注册效果

2.注册完成后,访问我们设置的path:/yourpath,可以看到我们的控制器方法已经
执行了

后台日志打印

3.再次访问删除注册信息接口/mapping/unregisterMapping,来删除我们刚刚添加的映射信息

4.此时再访问/yourpath资源路径,发现已经返回404了~

完整测试工程参考:https://github.com/netbuffer/spring-boot-demo

