日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

基于注解的Controller接口這些高級功能你都知道嗎?

來源: 責編: 時間:2024-04-28 08:57:56 256觀看
導讀環境:SpringBoot2.7.181. 簡介基于注解的Controller接口,你可以使用 @RequestMapping 注解將請求映射到控制器方法。它有多種屬性,可根據 URL、HTTP 方法、請求參數、頭和媒體類型進行匹配。該注解可以在類上使用它來表

環境:SpringBoot2.7.186wO28資訊網——每日最新資訊28at.com

1. 簡介

基于注解的Controller接口,你可以使用 @RequestMapping 注解將請求映射到控制器方法。它有多種屬性,可根據 URL、HTTP 方法、請求參數、頭和媒體類型進行匹配。該注解可以在類上使用它來表達共享映射,也可以在方法級使用它來縮小特定接口映射的范圍。6wO28資訊網——每日最新資訊28at.com

@RequestMapping 還有 HTTP 方法特定的快捷方式變體:6wO28資訊網——每日最新資訊28at.com

  • @GetMapping
  • @PostMapping
  • @PutMapping
  • @DeleteMapping
  • @PatchMapping

通過上面的注解,我們能更加具體的去匹配我們的Controller接口方法。這些注解在開發中都是些基本的操作,并且在絕大多數情況下使用這些接口完全夠用了。接下來將介紹幾個高級用法。6wO28資訊網——每日最新資訊28at.com

2. 實戰案例

2.1 HEAD、OPTIONS請求

對于head,options請求Spring并沒有提供對應的快捷注解,我們只能通過@RequestMapping注解來指定method屬性。6wO28資訊網——每日最新資訊28at.com

@GetMapping (和 @RequestMapping(method=HttpMethod.GET))支持 HTTP HEAD 透明請求映射。控制器方法無需更改。在 javax.servlet.http.HttpServlet 中應用的響應封裝器可確保 Content-Length 標頭被設置為寫入的字節數(而不會實際寫入響應)。如下示例:6wO28資訊網——每日最新資訊28at.com

@GetMapping("/h")public Object h() {  System.out.println("header....") ;  return "h method..." ;}

當上面的接口以head方式請求時,也是可以成功進入該方法的只是并不會輸出內容到客戶端,而僅僅是通過Content-Leng告知有多少個字節內容。6wO28資訊網——每日最新資訊28at.com

圖片圖片6wO28資訊網——每日最新資訊28at.com

響應header中有Content-Length6wO28資訊網——每日最新資訊28at.com

圖片圖片6wO28資訊網——每日最新資訊28at.com

對應HEAD請求我們完全可以通過GET方式來解決。6wO28資訊網——每日最新資訊28at.com

默認情況下,HTTP OPTIONS 的處理方式是將 Allow 響應頭設置為具有匹配 URL 模式的所有 @RequestMapping 方法中列出的 HTTP 方法列表。簡單說當你通過OPTIONS請求一個URL時,Allow的響應頭會設置為你@RequestMapping(method = ...)這里你method設置的列表+OPTIONS,如下示例:6wO28資訊網——每日最新資訊28at.com

@RequestMapping(value = "/o", method = {RequestMethod.DELETE, RequestMethod.HEAD})public Object o() {  System.out.println("o....") ;  return "h method..." ;}

當上面的接口通過OPTIONS請求時,那么響應header Allow將設置為如下:6wO28資訊網——每日最新資訊28at.com

圖片圖片6wO28資訊網——每日最新資訊28at.com

如果你的@RequestMapping沒有指定method屬性值,那么Allow 頭信息會被設置為 GET,HEAD,POST,PUT,PATCH,DELETE,OPTIONS。上面的即可刪除method屬性再次請求如下:6wO28資訊網——每日最新資訊28at.com

圖片圖片6wO28資訊網——每日最新資訊28at.com

2.2 自定義請求注解

在某些場景下你可能需要自定義自己的一些注解來配置通用的匹配模式,那么這時候通過自定義請求注解的方式是非常合適的,而不用你對每一個請求都去做重復的事。6wO28資訊網——每日最新資訊28at.com

自定義請求注解6wO28資訊網——每日最新資訊28at.com

@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)@Documented@RequestMappingpublic @interface PackMapping { @AliasFor(annotation = RequestMapping.class) String name() default ""; @AliasFor(annotation = RequestMapping.class) String[] value() default {}; @AliasFor(annotation = RequestMapping.class) // 配置只能是GET或POST方法 RequestMethod[] method() default {RequestMethod.GET, RequestMethod.POST} ; @AliasFor(annotation = RequestMapping.class) String[] path() default {}; @AliasFor(annotation = RequestMapping.class) String[] params() default {}; // 設置請求header必須包含X-API-Version并且值必須是v1 @AliasFor(annotation = RequestMapping.class) String[] headers() default {"X-API-Versinotallow=v1"}; @AliasFor(annotation = RequestMapping.class) String[] consumes() default {}; @AliasFor(annotation = RequestMapping.class) String[] produces() default {};}

測試Controller接口6wO28資訊網——每日最新資訊28at.com

@PackMapping("/v")public Object v() {  System.out.println("自定義請求注解....") ;  return "PackMapping method..." ;}

輸出結果6wO28資訊網——每日最新資訊28at.com

圖片圖片6wO28資訊網——每日最新資訊28at.com

請求中必須攜帶X-API-Version請求header。6wO28資訊網——每日最新資訊28at.com

2.3 動態顯示注冊接口

你可以通過編程方式注冊處理程序方法,這些方法可以用于動態注冊或高級情況,例如不同URL下的同一處理程序的不同實例,如下示例:6wO28資訊網——每日最新資訊28at.com

@Configurationpublic class CustomWebConfig {  @Autowired  public void setHandlerMapping(RequestMappingHandlerMapping mapping, UserService handler)      throws NoSuchMethodException {    BuilderConfiguration options = new BuilderConfiguration() ;    options.setPatternParser(new PathPatternParser()) ;    RequestMappingInfo info = RequestMappingInfo.paths("/api/user/{id}").methods(RequestMethod.GET).options(options ).build();    Method method = UserHandler.class.getMethod("getUser", Integer.class) ;    mapping.registerMapping(info, handler, method);  }}

UserService6wO28資訊網——每日最新資訊28at.com

@Componentpublic class UserHandler {    @ResponseBody  public User getUser(@PathVairable("id")Integer id) {    User user = new User() ;    user.setId(id) ;    user.setName("張三") ;    return user ;  }}

輸出結果6wO28資訊網——每日最新資訊28at.com

圖片圖片6wO28資訊網——每日最新資訊28at.com

以上是本篇文章的全部內容,如對你有幫助就請作者吃個棒棒糖

本文鏈接:http://m.www897cc.com/showinfo-26-86065-0.html基于注解的Controller接口這些高級功能你都知道嗎?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 淺析ServiceMesh和Istio,你學會了嗎?

下一篇: C#隊列(Queue)的基本使用,一文全掌握

標簽:
  • 熱門焦點
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
影音先锋国产精品| 久久久91精品国产一区二区精品| 好吊色欧美一区二区三区视频| 黑人一区二区| 亚洲精品影视| 午夜电影亚洲| 欧美成人午夜激情在线| 欧美亚州韩日在线看免费版国语版| 国产精品午夜在线| 影音先锋日韩资源| 在线亚洲成人| 久久精品一区二区三区不卡牛牛| 欧美va天堂va视频va在线| 国产精品久久国产精品99gif| 国产亚洲精品久久久久动| 在线播放不卡| 亚洲国产视频a| 日韩午夜在线| 欧美一区国产在线| 欧美高清在线精品一区| 国产精品午夜电影| 亚洲麻豆国产自偷在线| 西西人体一区二区| 欧美亚一区二区| 亚洲日韩视频| 嫩模写真一区二区三区三州| 欧美国产综合视频| 国产精品日韩欧美一区二区三区| 国产精品永久免费| 亚洲靠逼com| 欧美久色视频| 中文在线资源观看网站视频免费不卡 | 欧美在线观看网址综合| 久久精品视频亚洲| 欧美日韩在线播放一区| 欧美一区永久视频免费观看| 亚洲国产va精品久久久不卡综合| 欧美色精品在线视频| 久久色在线播放| 精品福利免费观看| 欧美日韩免费区域视频在线观看| 亚洲欧美国产毛片在线| 在线观看一区| 国产伦精品一区二区三区视频黑人 | 亚洲欧洲精品成人久久奇米网| 亚洲成人直播| 一区二区欧美精品| 久久在线91| 国产日韩欧美视频| 先锋亚洲精品| 国产日本欧美一区二区| 国产一区深夜福利| 欧美日本免费| 久久精品一区| 欧美手机在线| 亚洲综合日韩在线| 亚洲大胆女人| 久久精品99国产精品日本| 午夜一级久久| 制服诱惑一区二区| 国产精品日韩在线观看| 国产精品成人在线观看| 亚洲激情电影在线| 久久人人九九| 国产自产女人91一区在线观看| 亚洲在线中文字幕| 欧美精品一区二区三区四区| 亚洲二区视频在线| 久久九九热re6这里有精品| 国产深夜精品| 欧美影视一区| 国产日韩在线看| 亚洲欧美一区二区激情| 欧美亚洲成人免费| 亚洲天堂av在线免费| 国产一区欧美| 日韩五码在线| 欧美二区在线| 国产专区精品视频| 久久精品成人| 国产精品欧美一区喷水| 亚洲一区欧美| 国产精品视频精品| 午夜精品福利在线| 国产啪精品视频| 欧美一级网站| 国产精品日韩欧美大师| 午夜精品一区二区三区在线| 国产精品一级二级三级| 亚洲欧美国产日韩天堂区| 国产区在线观看成人精品| 欧美一区二区黄| 国产视频一区欧美| 欧美主播一区二区三区美女 久久精品人 | 西西人体一区二区| 国产精品最新自拍| 欧美一区二区视频网站| 国产在线观看91精品一区| 久久久一本精品99久久精品66| 精久久久久久| 欧美激情精品久久久| 亚洲毛片在线看| 欧美性天天影院| 午夜久久久久久久久久一区二区| 国产精品社区| 欧美在线观看天堂一区二区三区| 尤物网精品视频| 欧美一区二区三区久久精品茉莉花| 亚洲免费观看视频| 欧美成人xxx| ●精品国产综合乱码久久久久| 欧美gay视频| 亚洲伦理精品| 国产精品久久久久久久免费软件| 午夜在线精品| 狠狠综合久久| 欧美日本韩国| 亚洲欧美日韩综合aⅴ视频| 国产一区二区在线免费观看| 免费在线一区二区| 国产精品99久久久久久www| 一区二区三区四区五区视频| 国产精品vvv| 欧美中文在线观看国产| 亚洲高清视频的网址| 欧美日韩中文字幕在线视频| 亚洲自拍偷拍麻豆| 精久久久久久| 欧美日韩一区二区在线| 欧美影院精品一区| 1000精品久久久久久久久| 欧美日韩成人综合天天影院| 亚洲欧美成人在线| 伊人久久亚洲影院| 欧美日韩亚洲一区二区三区| 亚洲影院免费| 好吊视频一区二区三区四区| 欧美成人亚洲成人日韩成人| 亚洲一区二区视频在线观看| 一色屋精品视频免费看| 欧美日韩免费区域视频在线观看| 欧美一区二区高清在线观看| 亚洲激情成人网| 国产欧美日本一区二区三区| 欧美国内亚洲| 久久国产色av| 宅男66日本亚洲欧美视频| 一区视频在线| 国产老肥熟一区二区三区| 欧美99久久| 亚洲欧洲av一区二区| 亚洲肉体裸体xxxx137| 国产欧美日韩精品一区| 欧美日韩二区三区| 久久亚洲午夜电影| 亚洲男女自偷自拍图片另类| 亚洲日本免费电影| 国内精品久久久久久| 国产精品成人免费| 欧美激情精品久久久久久| 久久国产88| 亚洲一区日韩| 亚洲精品在线视频| 尤物网精品视频| 国产精品一区二区三区四区| 欧美日韩精品欧美日韩精品| 久久综合成人精品亚洲另类欧美 | 亚洲视频在线观看网站| 在线观看一区欧美| 国产免费成人av| 欧美三级电影一区| 欧美高清一区二区| 开元免费观看欧美电视剧网站| 欧美亚洲免费电影| 亚洲午夜久久久久久久久电影院| 91久久综合| 在线观看成人av| 国产在线播放一区二区三区 | 亚洲美女视频网| 在线成人免费观看| 国产一区二区三区免费在线观看 | 久久夜色精品亚洲噜噜国产mv| 亚欧美中日韩视频| 亚洲一区日韩| 中文高清一区| 一区二区成人精品| 日韩小视频在线观看| 亚洲娇小video精品| 狠狠色丁香久久综合频道| 国产一区日韩欧美| 国产精品一区二区久久| 欧美亚韩一区| 国产精品v一区二区三区| 欧美区高清在线| 欧美日本不卡视频| 欧美精选在线| 欧美日韩成人精品| 欧美日韩国产综合久久| 欧美日韩国产综合视频在线观看中文 | 欧美日韩亚洲网| 欧美日本免费| 欧美激情综合色| 欧美日韩大片| 国产精品高清一区二区三区|