您好,登錄后才能下訂單哦!
* 10秒鐘就可以建立一個后端服務
* 甚至沒有Controller的概念
* 分布式鎖,只需要一行注解
* 本機測試,響應時間最低可達9毫秒,吐吞量最高可達1200
按照傳統的開發方式,如果要開發一個后端接口,需要分為以下三步
* 創建controller
* 創建service
* 創建dao(甚至會創建存放sql的xml)
但是,我們編寫一個接口,重點應該是放在業務邏輯上的,也就是說 我們的關注點應該在第二步,但是通常第一步和第三步的重復工作量讓我們感到窒息,所以我梳理了一下,制定了一個新玩法,這套新玩法就叫聲明式API
* 寫業務邏輯
* 聲明一個API給前端
* 將API與業務邏輯關聯
所以我們是這樣玩的
@MarsBean("testService")
public class TestService {
要返回的數據類型 selectListForName(參數1, 參數2, 參數3, 參數4){
// 第一步 根據testDTO里的參數從xx表查詢需要的數據
// 第二步 根據查出來的數據,去操作xx2表
// 第三步 對前兩步的結果匯總,進行xxx操作
return 數據(直接返回即可,會自動變成json);
}
}
@MarsApi
public interface TestApi {
Object selectList(TestVO testVO);
}
@MarsApi
public interface TestApi {
@MarsReference(beanName = "testService",refName = "selectListForName")
Object selectList(TestVO testVO);
}
對,你沒看錯,API的方法和他引用的那個方法,參數列表可以不一樣, 框架會自動把API的參數的值賦值到引用的那個方法的參數列表
引用的方法甚至可以無參,參數目前只支持自定義對象和Map
這套思想的核心是,把后端看作是一個獨立個體,并不是為服務前端而存在的, 后端就寫后端的業務邏輯好了,如果前端需要數據,那我們就開個門給他
通過更換MarsReference的配置,可以關聯到不同的業務邏輯
如果前端不需要這個接口了,直接無腦刪就好了,因為這只是一個抽象方法
后端專注業務邏輯就好了,不需要考慮跟前端互動,前端需要的時候開個門就好了
首先聲明式API是對前后端交互方式的一次變革,省去了Controller。
其實這種風格在微服務里很常見,比如Dubbo的api, 既然微服務接口可以用interface來提供對外的服務,那么我們也可以把它用到http接口上吧。
* 單表操作和固定sql操作,僅需一行注解
* 分頁僅需調用一個方法,沒有任何第三方依賴
* 分布式鎖,只需要一行注解
* 沒有像Mybatis一樣的sqlMapper.xml
* 支持AOP,IOC,聲明式事務
* 搭建僅需三步,并提供官方中文文檔,再也不需要滿大街的搜Spring的機翻文檔或者個人博客了
在要加鎖的方法上添加RedisLock注解
@RedisLock(key = "自己定義一個key")
public int insert(){
return 1;
}
這個鎖會在事務開啟之前獲取,在事務提交以后解鎖,并且只對MarsBean有效,對API和DAO無效
如果你不需要鎖住整個方法,只需要鎖一小段代碼,那么可以去我的官網查看相應的方法
官網:http://mars-framework.com/
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。