摘要:注意如果你的方法返回對(duì)象只有一個(gè)資源對(duì)象需要映射,可以多帶帶配置使用注解。集合資源加載返回值為集合的示例類型作為返回值時(shí),其中注意必須是對(duì)象類型。如果你有想要的使用方式,你就可以提交
ApiBoot Resource Load
ApiBoot Resource Load是一款資源與業(yè)務(wù)完全分離的基礎(chǔ)框架,可以整合微服務(wù)(Feign、OpenFeign)進(jìn)行負(fù)載均衡讀取固定類型、固定所屬業(yè)務(wù)的資源信息,遵循一定的資源存儲(chǔ)規(guī)則完成自動(dòng)化資源讀取、添加、更新、刪除、緩存等。
使用場(chǎng)景業(yè)務(wù)圖片存儲(chǔ)
業(yè)務(wù)音頻、視頻文件存儲(chǔ)
業(yè)務(wù)文件
其他資源文件...
引入 ApiBoot Resource Load在pom.xml配置文件內(nèi)添加如下依賴:
org.minbox.framework api-boot-starter-resource-load
ApiBoot所提供的依賴都不需要添加版本號(hào),但是需要添加版本依賴,具體查看ApiBoot版本依賴了解ApiBootResourceStoreDelegate
ApiBootResourceStoreDelegate是一個(gè)資源數(shù)據(jù)讀取的委托驅(qū)動(dòng)接口,在使用ApiBoot Resource Load時(shí),需要實(shí)現(xiàn)該接口完成資源的讀取方法loadResourceUrl(),該方法的參數(shù)如下所示:
第一個(gè)參數(shù)sourceFieldValue,是查詢資源的業(yè)務(wù)編號(hào),具體的配置詳見下面的示例。
第二個(gè)參數(shù)resourceType,是查詢資源的類型,相同的業(yè)務(wù)編號(hào)下很有可能存在多種類型,比如:用戶編號(hào)對(duì)應(yīng)用戶頭像、用戶封面等。
ApiBootResourceStoreDelegate示例:
// 示例 @Service public class ResourceLoadService implements ApiBootResourceStoreDelegate { /** * logger instance */ static Logger logger = LoggerFactory.getLogger(ResourceLoadService.class); @Override public ListloadResourceUrl(String sourceFieldValue, String resourceType) throws ApiBootException { logger.info("查詢資源的業(yè)務(wù)邏輯字段值:{}", sourceFieldValue); logger.info("資源類型:{}", resourceType); return Arrays.asList(new String[]{"http://test.oss.com/111.png"}); } }
loadResourceUrl方法需要返回根據(jù)resourceFieldValue、resourceType字段查詢到的資源列表。內(nèi)置注解
@ResourceLoad
標(biāo)注方法需要進(jìn)行ApiBoot Resource Load自動(dòng)化讀取資源信息,該注解必須添加,且只能添加在方法上。
@ResourceFields
@ResourceField注解的集合
@ResourceField
配置@ResourceLoad標(biāo)注的方法具體有哪些字段需要進(jìn)行資源的自動(dòng)映射,參數(shù)解釋如下所示:
name:查詢資源后設(shè)置到類內(nèi)Field的名稱
source:查詢資源所需的業(yè)務(wù)邏輯編號(hào)類內(nèi)Field的名稱
type:資源類型,自行定義
isArray:接收查詢后資源的Field類型是否為array,true:array
isList:接收查詢后資源的Field類型是否為list,true:list
單對(duì)象資源加載資源加載一般都是實(shí)體類的方式進(jìn)行返回的,下面我們先來創(chuàng)建一個(gè)實(shí)體類方便示例測(cè)試,如下所示:
/** * 示例對(duì)象 */ @Data class SampleUserInfo { public SampleUserInfo(String userId, int age) { this.userId = userId; this.age = age; } private String userId; private String headImage; private String shortImage; private int age; }
返回值為單對(duì)象資源加載示例:
/** * 返回值為單個(gè)對(duì)象的示例 * * @return */ @ResourceLoad @ResourceFields({ @ResourceField(name = "headImage", source = "userId", type = "HEAD_IMAGE"), @ResourceField(name = "shortImage", source = "userId", type = "SHORT_IMAGE") }) public SampleUserInfo singleObjectSample() { return new SampleUserInfo("yuqiyu", 24); }
在上面,我們配置讀取兩種類型的資源,分別是:HEAD_IMAGE、SHORT_IMAGE,而且配置的業(yè)務(wù)資源編號(hào)都是userId字段,這兩個(gè)字段也就是會(huì)傳遞給ApiBootResourceStoreDelegate#loadResourceUrl方法作為參數(shù)。List集合資源加載其中HEAD_IMAGE讀取到的資源路徑設(shè)置到SampleUserInfo類內(nèi)的headImage,SHORT_IMAGE讀取到的資源路徑設(shè)置到SampleUserInfo類內(nèi)的shortImage字段。
注意:如果你的方法返回對(duì)象只有一個(gè)資源對(duì)象需要映射,可以多帶帶配置使用@ResourceField注解。
/** * 返回值為list集合的示例 * * @return */ @ResourceLoad @ResourceFields({ @ResourceField(name = "headImage", source = "userId", type = "HEAD_IMAGE"), @ResourceField(name = "shortImage", source = "userId", type = "SHORT_IMAGE") }) public ListlistSample() { List users = new ArrayList(); users.add(new SampleUserInfo("yuqiyu", 24)); users.add(new SampleUserInfo("hengboy", 24)); return users; }
在上面,會(huì)為返回值list內(nèi)的每一個(gè)SampleUserInfo對(duì)象進(jìn)行設(shè)置查詢的資源信息。
Map集合資源加載/** * 返回值為map集合的示例 * * @return */ @ResourceLoad @ResourceFields({ @ResourceField(name = "headImage", source = "userId", type = "HEAD_IMAGE"), @ResourceField(name = "shortImage", source = "userId", type = "SHORT_IMAGE") }) public MapmapSample() { Map users = new HashMap<>(2); users.put("yuqiyu", new SampleUserInfo("yuqiyu", 24)); users.put("hengboy", new SampleUserInfo("hengboy", 24)); return users; }
Map類型作為返回值時(shí),其中注意map -> value必須是對(duì)象類型。
如果你有想要的使用方式,你就可以提交issuse!!!
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74139.html
摘要:是一款基于的接口服務(wù)集成基礎(chǔ)框架,內(nèi)部提供了框架的封裝集成,讓接口開發(fā)者完成開箱即用,不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。 ApiBoot是一款基于SpringBoot1.x、SpringBoot2.x的接口服務(wù)集成基礎(chǔ)框架,內(nèi)部提供了框架的封裝集成,讓接口開發(fā)者完成開箱即用,不再為搭建接口框架而犯愁,從而極大的提高開發(fā)效率。通過在我的SpringBoot系列教程中得到的...
摘要:相關(guān)配置配置參數(shù)參數(shù)介紹默認(rèn)值是否啟用文檔標(biāo)題快速集成文檔文檔描述通過自動(dòng)化配置快速集成文檔,僅需一個(gè)注解一個(gè)依賴即可。注意通過所獲取的類型都為。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接口開發(fā)者可以選著性完成開箱即用, 不再為搭建接口框架而犯愁,從而極大...
摘要:如果全部使用默認(rèn)值的情況話不需要做任何配置方式前提項(xiàng)目需要添加數(shù)據(jù)源依賴。獲取通過獲取啟用在使用格式化時(shí)非常簡單的,配置如下所示開啟轉(zhuǎn)換轉(zhuǎn)換時(shí)所需加密,默認(rèn)為恒宇少年于起宇默認(rèn)不啟用,簽名建議進(jìn)行更換。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接口開發(fā)者可以選著性完成開箱即...
摘要:的短信服務(wù)模塊是由阿里云的國際短信服務(wù)提供的,支持國內(nèi)和國際快速發(fā)送驗(yàn)證碼短信通知和推廣短信。前提需要到阿里云控制臺(tái)申請(qǐng)開通短信服務(wù)。如果在阿里云控制臺(tái)定義的短信模板存在多個(gè)參數(shù),可以通過方法來進(jìn)行挨個(gè)添加,該方法返回值為本對(duì)象。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接...
摘要:如下所示不配置默認(rèn)使用自定義是的概念,用于自定義轉(zhuǎn)換實(shí)現(xiàn),比如自定義格式化日期自動(dòng)截取小數(shù)點(diǎn)等。下面提供一個(gè)的簡單示例,具體的使用請(qǐng)參考官方文檔。 ApiBoot是一款基于SpringBoot1.x,2.x的接口服務(wù)集成基礎(chǔ)框架, 內(nèi)部提供了框架的封裝集成、使用擴(kuò)展、自動(dòng)化完成配置,讓接口開發(fā)者可以選著性完成開箱即用, 不再為搭建接口框架而犯愁,從而極大...
閱讀 1994·2021-11-15 18:09
閱讀 889·2021-09-06 15:13
閱讀 2636·2021-08-23 09:43
閱讀 2016·2019-08-30 15:54
閱讀 2208·2019-08-30 13:56
閱讀 2476·2019-08-26 11:31
閱讀 3070·2019-08-26 10:56
閱讀 685·2019-08-26 10:28