日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

JAX-RS 从傻逼到牛叉 5:资源的动态定位

發布時間:2025/6/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAX-RS 从傻逼到牛叉 5:资源的动态定位 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么80%的碼農都做不了架構師?>>> ??

目前我們的電影服務只提供了對電影信息的訪問服務,現在我們要再增加兩項級服務,分別用來訪問導演和演員信息。加上原先的電信信息服務,我們把 URI 統一放到/ms/rest/service/?的子路徑下。最先想到的方法就是為這三個 URI 分別寫 JAX-RS 服務:

@Singleton @Path("service/movie") public class MovieService {// 此處省略若干行 }@Singleton @Path("service/director") public class DirectorService {// 此處省略若干行 }@Singleton @Path("service/director") public class ActorService {// 此處省略若干行 }

這種寫法的缺點就是讓三個本來有點關系(父級 URI 相同)的服務被放到了毫不相干的三個類里面,不一個個類地查看注解難以看出這點關系。為此,JAX-RS 提供了動態資源綁定的功能,讓我們能夠對這種情況做一些整理。

首先,我們引入一個服務定位器來處理集中管理這三個子級服務:

@Singleton @Path("service") public class ServiceLocator {@Injectprivate MovieService movieService;@Injectprivate DirectorService directorService;@Injectprivate ActorService actorService;private Map<String, Object> serviceMap;@PostConstructprivate initServiceMap() {serviceMap = new HashMap<>();serviceMap.put("movie", movieService);serviceMap.put("director", directorService);serviceMap.put("actor", actorService);}@Path("{name}")public Object locateService(@PathParam("name") String name) {Object service = serviceMap.get(name);if (service == null) {throw new WebApplicationException(Status.SERVICE_UNAVAILABLE);}return service;} }

該類中的?locateService?方法根據服務的名稱返回相應的服務實例,注意該方法只有一個?@Path?注解,因為它并不清楚請求的具體內容;返回對象的類型為?Object,表明動態資源定位不要求服務類實現相同的接口,只需要它們的方法帶有相應的 JAX-RS 注解,就能夠被 JAX-RS 自動發現和處理(專業術語稱為 introspect,內省),以MovieService?為例:

@Singleton public class MovieService {@GET@Path("{id}")@Produces(MediaType.APPLICATION_JSON)public Movie find(@PathParam("id") int id) {Movie movie = movieDao.get(id);if (movie != null) {return movie;} else {throw new WebApplicationException(Status.NOT_FOUND);}}// 此處省略若干行 }

這樣,每個請求實際上都由兩個類先后處理。例如,處理請求?GET /ms/rest/service/movie/1?的時候,先由?ServiceLocator?返回相配的服務實例?movieService,然后再由該實例的?find?方法返回結果。比起最開始那三個簡單的類,雖然多了一層調用,但換來了更加清晰的結構。

動態資源定位是一個非常靈活強大的功能,用好的話,完全可以把 URI 層次整理成一個類似于文件目錄結構的抽象文件系統。

轉載于:https://my.oschina.net/lhplj/blog/170951

總結

以上是生活随笔為你收集整理的JAX-RS 从傻逼到牛叉 5:资源的动态定位的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久久久久久久久久久97 | 吞精囗交69激情欧美 | 国产精品伦一区二区三级视频 | 色综合一区二区三区 | 无毒黄色网址 | 亚洲夜夜爽 | 久一区二区三区 | 中文字幕在线2019 | 老熟妇午夜毛片一区二区三区 | 成人写真福利网 | 西欧毛片| 日本一区不卡在线观看 | 免费日本在线 | 青娱乐青青草 | 在线观看三级网站 | 寂寞d奶大胸少妇 | 久久无码人妻精品一区二区三区 | 91色影院| 97人人爽人人| 欧美日韩成人一区二区在线观看 | 成人免费视频一区 | 强伦轩人妻一区二区电影 | 亚洲喷潮 | 女同在线视频 | 亚洲伊人av | 色综合一区二区三区 | 久久人人艹 | free国产hd露脸性开放 | 一区二区激情 | 9191av| 人人干视频 | 奇米在线播放 | 中文字幕高清在线播放 | 久久在线| 国产黄色高清视频 | 加勒比一区二区三区 | 亚洲国产一二 | 天堂网视频在线观看 | 成人免费高清在线播放 | 91免费小视频 | 日韩精品一区二区三区免费视频 | 不用播放器的av网站 | 欧美亚洲专区 | 美女主播福利视频 | 啪啪免费网站 | 亚洲成人av一区 | 婷婷综合六月 | 免费看成人aa片无码视频羞羞网 | 国产综合在线观看视频 | 欧美草逼网| 欧美日韩国产在线 | 久操视频网站 | 波多野结衣一二三区 | 午夜激情视频 | 日本美女黄色 | 日韩精品在线观看中文字幕 | 黄色a∨ | 欧美日韩免费一区二区三区 | 亚洲天天操 | 欧美在线免费 | 88av在线视频 | 玖草视频在线 | 日本一区二区高清免费 | 国产成人8x视频一区二区 | 欧美一区二区国产 | 日韩精品一二三区 | 久久白虎 | 一区二区三区在线免费视频 | 成人区人妻精品一熟女 | 国产精品一区二区三区四区 | 日韩成人精品一区二区三区 | 国产丝袜网站 | 成人动漫在线免费观看 | 精品网站 | 少妇高潮露脸国语对白 | 国产av一区二区三区 | 亚洲免费av一区 | 波多野结衣在线一区二区 | 国产精品36p | 国产精品免费一区二区区 | 亚洲午夜激情视频 | 久草网站 | 精品久久久视频 | 欧美日韩免费在线观看 | 麻豆传媒在线看 | 天天色天天草 | 黄色欧美视频 | 毛片aaa| 精品一区二区三区蜜臀 | 国产人妻一区二区 | 国产成人麻豆免费观看 | 鲁丝一区二区 | 99久久久无码国产精品性色戒 | 色噜噜影院 | 久久国产成人精品 | 97人妻一区二区精品免费视频 | 黄色一级免费看 | 国产在线一 | 久草免费在线视频 |