欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

面向聲明式API編程(DAP)-Mars-java框架-創(chuàng)新互聯(lián)

聲明式API編程(DAP) 框架

* 10秒鐘就可以建立一個(gè)后端服務(wù)
* 甚至沒(méi)有Controller的概念
* 分布式鎖,只需要一行注解
* 本機(jī)測(cè)試,響應(yīng)時(shí)間最低可達(dá)9毫秒,吐吞量最高可達(dá)1200

什么是聲明式API編程(DAP)

按照傳統(tǒng)的開(kāi)發(fā)方式,如果要開(kāi)發(fā)一個(gè)后端接口,需要分為以下三步

讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來(lái)自于我們對(duì)這個(gè)行業(yè)的熱愛(ài)。我們立志把好的技術(shù)通過(guò)有效、簡(jiǎn)單的方式提供給客戶,將通過(guò)不懈努力成為客戶在信息化領(lǐng)域值得信任、有價(jià)值的長(zhǎng)期合作伙伴,公司提供的服務(wù)項(xiàng)目有:域名申請(qǐng)、網(wǎng)頁(yè)空間、營(yíng)銷軟件、網(wǎng)站建設(shè)、果洛州網(wǎng)站維護(hù)、網(wǎng)站推廣。
* 創(chuàng)建controller
* 創(chuàng)建service
* 創(chuàng)建dao(甚至?xí)?chuàng)建存放sql的xml)

但是,我們編寫(xiě)一個(gè)接口,重點(diǎn)應(yīng)該是放在業(yè)務(wù)邏輯上的,也就是說(shuō) 我們的關(guān)注點(diǎn)應(yīng)該在第二步,但是通常第一步和第三步的重復(fù)工作量讓我們感到窒息,所以我梳理了一下,制定了一個(gè)新玩法,這套新玩法就叫聲明式API

* 寫(xiě)業(yè)務(wù)邏輯
* 聲明一個(gè)API給前端
* 將API與業(yè)務(wù)邏輯關(guān)聯(lián)

所以我們是這樣玩的

編寫(xiě)業(yè)務(wù)邏輯

@MarsBean("testService")
public class TestService {

    要返回的數(shù)據(jù)類型 selectListForName(參數(shù)1, 參數(shù)2, 參數(shù)3, 參數(shù)4){
        // 第一步 根據(jù)testDTO里的參數(shù)從xx表查詢需要的數(shù)據(jù)
        // 第二步 根據(jù)查出來(lái)的數(shù)據(jù),去操作xx2表
        // 第三步 對(duì)前兩步的結(jié)果匯總,進(jìn)行xxx操作

        return 數(shù)據(jù)(直接返回即可,會(huì)自動(dòng)變成json);
    }
}

聲明一個(gè)API接口

@MarsApi
public interface TestApi {

    Object selectList(TestVO testVO);
}

將api與業(yè)務(wù)邏輯關(guān)聯(lián)

@MarsApi
public interface TestApi {

    @MarsReference(beanName = "testService",refName = "selectListForName")
    Object selectList(TestVO testVO);
}

對(duì),你沒(méi)看錯(cuò),API的方法和他引用的那個(gè)方法,參數(shù)列表可以不一樣, 框架會(huì)自動(dòng)把API的參數(shù)的值賦值到引用的那個(gè)方法的參數(shù)列表

引用的方法甚至可以無(wú)參,參數(shù)目前只支持自定義對(duì)象和Map

這套思想的核心是,把后端看作是一個(gè)獨(dú)立個(gè)體,并不是為服務(wù)前端而存在的, 后端就寫(xiě)后端的業(yè)務(wù)邏輯好了,如果前端需要數(shù)據(jù),那我們就開(kāi)個(gè)門(mén)給他

這么做的好處,還可以散藕

通過(guò)更換MarsReference的配置,可以關(guān)聯(lián)到不同的業(yè)務(wù)邏輯
如果前端不需要這個(gè)接口了,直接無(wú)腦刪就好了,因?yàn)檫@只是一個(gè)抽象方法
后端專注業(yè)務(wù)邏輯就好了,不需要考慮跟前端互動(dòng),前端需要的時(shí)候開(kāi)個(gè)門(mén)就好了

還可以做什么

首先聲明式API是對(duì)前后端交互方式的一次變革,省去了Controller。

其實(shí)這種風(fēng)格在微服務(wù)里很常見(jiàn),比如Dubbo的api, 既然微服務(wù)接口可以用interface來(lái)提供對(duì)外的服務(wù),那么我們也可以把它用到http接口上吧。

除了聲明式API,我們還提供以下功能
* 單表操作和固定sql操作,僅需一行注解
* 分頁(yè)僅需調(diào)用一個(gè)方法,沒(méi)有任何第三方依賴
* 分布式鎖,只需要一行注解
* 沒(méi)有像Mybatis一樣的sqlMapper.xml
* 支持AOP,IOC,聲明式事務(wù)
* 搭建僅需三步,并提供官方中文文檔,再也不需要滿大街的搜Spring的機(jī)翻文檔或者個(gè)人博客了

分布式鎖示例

在要加鎖的方法上添加RedisLock注解

@RedisLock(key = "自己定義一個(gè)key")
public int insert(){
  return 1;
}

這個(gè)鎖會(huì)在事務(wù)開(kāi)啟之前獲取,在事務(wù)提交以后解鎖,并且只對(duì)MarsBean有效,對(duì)API和DAO無(wú)效

如果你不需要鎖住整個(gè)方法,只需要鎖一小段代碼,那么可以去我的官網(wǎng)查看相應(yīng)的方法

官網(wǎng):http://mars-framework.com/

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。

分享標(biāo)題:面向聲明式API編程(DAP)-Mars-java框架-創(chuàng)新互聯(lián)
地址分享:http://chinadenli.net/article46/ddgseg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)、ChatGPT全網(wǎng)營(yíng)銷推廣、虛擬主機(jī)、網(wǎng)頁(yè)設(shè)計(jì)公司、服務(wù)器托管

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都app開(kāi)發(fā)公司