亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

面向聲明式API編程(DAP)- Mars-java框架

發布時間:2020-06-28 03:02:17 來源:網絡 閱讀:575 作者:wx5dd3a4c7ce05c 欄目:編程語言

聲明式API編程(DAP) 框架

* 10秒鐘就可以建立一個后端服務
* 甚至沒有Controller的概念
* 分布式鎖,只需要一行注解
* 本機測試,響應時間最低可達9毫秒,吐吞量最高可達1200

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

按照傳統的開發方式,如果要開發一個后端接口,需要分為以下三步

* 創建controller
* 創建service
* 創建dao(甚至會創建存放sql的xml)

但是,我們編寫一個接口,重點應該是放在業務邏輯上的,也就是說 我們的關注點應該在第二步,但是通常第一步和第三步的重復工作量讓我們感到窒息,所以我梳理了一下,制定了一個新玩法,這套新玩法就叫聲明式API

* 寫業務邏輯
* 聲明一個API給前端
* 將API與業務邏輯關聯

所以我們是這樣玩的

編寫業務邏輯

@MarsBean("testService")
public class TestService {

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

        return 數據(直接返回即可,會自動變成json);
    }
}

聲明一個API接口

@MarsApi
public interface TestApi {

    Object selectList(TestVO testVO);
}

將api與業務邏輯關聯

@MarsApi
public interface TestApi {

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

對,你沒看錯,API的方法和他引用的那個方法,參數列表可以不一樣, 框架會自動把API的參數的值賦值到引用的那個方法的參數列表

引用的方法甚至可以無參,參數目前只支持自定義對象和Map

這套思想的核心是,把后端看作是一個獨立個體,并不是為服務前端而存在的, 后端就寫后端的業務邏輯好了,如果前端需要數據,那我們就開個門給他

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

通過更換MarsReference的配置,可以關聯到不同的業務邏輯
如果前端不需要這個接口了,直接無腦刪就好了,因為這只是一個抽象方法
后端專注業務邏輯就好了,不需要考慮跟前端互動,前端需要的時候開個門就好了

還可以做什么

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

其實這種風格在微服務里很常見,比如Dubbo的api, 既然微服務接口可以用interface來提供對外的服務,那么我們也可以把它用到http接口上吧。

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

分布式鎖示例

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

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

這個鎖會在事務開啟之前獲取,在事務提交以后解鎖,并且只對MarsBean有效,對API和DAO無效

如果你不需要鎖住整個方法,只需要鎖一小段代碼,那么可以去我的官網查看相應的方法

官網:http://mars-framework.com/

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

遵义市| 信阳市| 讷河市| 自贡市| 中西区| 永川市| 桐乡市| 苗栗市| 大竹县| 靖安县| 沙湾县| 南江县| 汾阳市| 宜宾市| 平遥县| 资源县| 定州市| 明光市| 汕头市| 巴东县| 南江县| 邵东县| 石门县| 新丰县| 封丘县| 洛阳市| 芜湖市| 杭锦旗| 廊坊市| 洛川县| 深泽县| 柳江县| 姜堰市| 吴堡县| 阿城市| 镇原县| 浪卡子县| 普兰店市| 通榆县| 深圳市| 武功县|