Spring Boot動(dòng)態(tài)注冊(cè)/刪除http資源路徑的方法
Spring Boot開發(fā)中,有時(shí)會(huì)遇到某些url資源路徑會(huì)有有效期的限制,超過有效期的話就不能正常訪問,這時(shí)可以通過Spring MVC提供的RequestMappingHandlerMapping來編程式控制動(dòng)態(tài)注冊(cè)/刪除資源路徑,達(dá)到我們的目的,下面來看下怎么實(shí)現(xiàn)~
參考Spring官方文檔說明:https://docs.spring.io/spring-framework/docs/5.3.6/reference/html/web.html#mvc-ann-requestmapping-registration
工作原理
RequestMappingHandlerMapping繼承了AbstractHandlerMethodMapping,其中提供了registerMapping與unregisterMapping,分別用于注冊(cè)Mapping信息與刪除Mapping信息
實(shí)現(xiàn)注冊(cè)信息
實(shí)現(xiàn)刪除注冊(cè)信息
通過這兩個(gè)方法,我們就可以在工程中方便的編寫注冊(cè)與刪除url資源路徑的邏輯了
使用方式
1.編寫注冊(cè)/刪除用的Controller層方法
示例代碼:https://github.com/netbuffer/spring-boot-demo/blob/master/src/main/java/cn/netbuffer/springboot/demo/controller/RequestMappingController.java
2.編寫測(cè)試用的控制器類,來作為動(dòng)態(tài)注冊(cè)資源路徑的處理器
示例代碼:https://github.com/netbuffer/spring-boot-demo/blob/master/src/main/java/cn/netbuffer/springboot/demo/controller/DynamicHandler.java
運(yùn)行效果
1.啟動(dòng)工程,訪問/mapping/registerMapping接口注冊(cè)Mapping映射信息,來實(shí)現(xiàn)動(dòng)態(tài)資源路徑注冊(cè)效果

2.注冊(cè)完成后,訪問我們?cè)O(shè)置的path:/yourpath,可以看到我們的控制器方法已經(jīng)
執(zhí)行了

后臺(tái)日志打印

3.再次訪問刪除注冊(cè)信息接口/mapping/unregisterMapping,來刪除我們剛剛添加的映射信息

4.此時(shí)再訪問/yourpath資源路徑,發(fā)現(xiàn)已經(jīng)返回404了~

完整測(cè)試工程參考:https://github.com/netbuffer/spring-boot-demo