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