av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

Springboot如何動態(tài)注冊處理請求接口?這個知識點(diǎn)你值得了解一下

環(huán)境:springboot2.2.10.RELEASE

十余年的襄城網(wǎng)站建設(shè)經(jīng)驗(yàn),針對設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整襄城建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“襄城網(wǎng)站設(shè)計(jì)”,“襄城網(wǎng)站推廣”以來,每個客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

編寫一個準(zhǔn)備用來出來請求的方法

 
 
 
 
  1. @Service
  2. public class UserHandler {
  3.   @ResponseBody
  4.   public Object getUsers(@PathVariable("id") String id, HttpServletRequest request) {
  5.     System.out.println(request) ;
  6.     return "查詢用戶ID為: " + id ;
  7.   }
  8.     
  9. }

你的處理程序可以不是受容器管理的Bean。這里還應(yīng)用了SpringMVC相關(guān)的一些注解,這些注解都可以像Controller中使用一樣。

注冊接口處理程序

 
 
 
 
  1. @Configuration
  2. public class MappingConfig {
  3.     
  4.   @Autowired
  5.   public void setHandlerMapping(RequestMappingHandlerMapping mapping, UserHandler handler) throws NoSuchMethodException {
  6.     RequestMappingInfo info = RequestMappingInfo.paths("/users/{id}").methods(RequestMethod.GET).build();
  7.     Method method = UserHandler.class.getMethod("getUsers", String.class, HttpServletRequest.class);
  8.     mapping.registerMapping(info, handler, method);
  9.   }
  10. }
  1. 創(chuàng)建RequestMappingInfo對象,就是一些請求的基本元信息。
  2. 獲取處理程序的方法對象。
  3. 通過RequestMappingHandlerMapping注冊請求映射對象。

Spring容器在啟動過程中會將所有的Controller處理接口方法都包裝成RequestMappingInfo對象然后添加到

RequestMappingHandlerMapping對象的一個集合中。

注:容器默認(rèn)有很多個HandlerMapping對象,具體該如何處理初始化那些類接口是通過

AbstractHandlerMethodMapping#isHandler決定,該方法是個抽象方法具體是由子類來實(shí)現(xiàn)的。

 
 
 
 
  1. public abstract class AbstractHandlerMethodMapping extends AbstractHandlerMapping implements InitializingBean {
  2.   protected abstract boolean isHandler(Class beanType);
  3. }

RequestMappingHandlerMapping是AbstractHandlerMethodMapping的子類看看它的實(shí)現(xiàn):

 
 
 
 
  1. public class RequestMappingHandlerMapping {
  2.   @Override
  3.   protected boolean isHandler(Class beanType) {
  4.     return (AnnotatedElementUtils.hasAnnotation(beanType, Controller.class) || 
  5.             AnnotatedElementUtils.hasAnnotation(beanType, RequestMapping.class));
  6.   }
  7. }

這里判斷了當(dāng)前Bean對象上是否有@Controller注解或者@RequestMapping對象;也就是在容器啟動后會將所有的Controller中的接口方法保證注冊為RequstMappingInfo對象。

在SpringMVC處理一個請求的過程中,有一個流程是取得相應(yīng)的HandlerMapping對象。

處理方法參數(shù)

處理程序能夠接收那些參數(shù)?

JDK 8的java.util.Optional作為方法參數(shù)與注釋相結(jié)合受到支持具有必需屬性(例如@RequestParam、@RequestHeader和其他屬性)且等效于required=false。

處理方法返回值


網(wǎng)站欄目:Springboot如何動態(tài)注冊處理請求接口?這個知識點(diǎn)你值得了解一下
文章出自:http://uogjgqi.cn/article/cdshdso.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流