網站首頁 編程語言 正文
前言
Resty目前積累到450 star,還有1個多月滿一年了,在沒有推廣的情況下如果能積累到500 star,真是棒棒的,如果覺得不錯可以給顆心(https://github.com/Dreampie/Resty),希望大家多多鼓勵,也希望有心的同學參與維護,開源說明它屬于大家,無論你使用或者作為一個框架的基礎學習還是從中得到靈感做出好用的東西 都希望你能和大家一起分享 開源希望大家互相幫助。
本次更新說大不大說小不小,主要解決一下對api的控制問題:
1.使用header來控制api版本
最初設計的api控制方式主要基于url的版本控制,更新時要么提供一個基礎的ApiResource,要么提供一個新的項目做為新版本接口,作為一個強迫癥一直對此功能心懷不滿。
我一直以來對團隊要求都是只要更新沒有影響到整體返回的數據結構,是不允許升級接口的版本號的,兼容老版本非常重要,如果遇到重構和結構大規(guī)模變化,通過header來提供一個新的api并保留老api一段時間(我們?yōu)榭蛻舳颂峁┝藦娭粕売媱潱坏﹩涌蛻舳吮仨毶壍叫掳姹?,后續(xù)會把老的api清理掉,理論上一個api最多存在兩個版本,如果不是只能說明你設計的接口穩(wěn)定性較弱,自由可控對強迫癥來說非常重要,示例:
@GET(value?=?"/:get",?headers?=?{"Accept:?application/vnd.resty.v1+json"}) //使用:來分割key和value ??public?WebResult>?get(String?get,?Date?x,?HttpResponse?response)?{ ????throw?new?WebException(HttpStatus.NO_CONTENT,?"xxx"); ??}
2.讀寫分離的數據源支持
簡單配置不需要考慮太多,同時提醒:如果本次請求的事務范圍內即有讀由有寫,會根據你的@Transaction注解的事務來使用連接,比如需要寫入庫的連接,那么讀取時也會使用寫入庫的連接,節(jié)省一次打開讀取庫連接的資源
//讀寫分離 ????DruidDataSourceProvider?writeDsp?=?new?DruidDataSourceProvider("write"); ????DruidDataSourceProvider?readDsp?=?new?DruidDataSourceProvider("read"); ????ActiveRecordPlugin?activeRecordDdsp?=?new?ActiveRecordPlugin("readwrite",?writeDsp,?readDsp); ????activeRecordDdsp.addIncludePackages("cn.dreampie.resource"); ????pluginLoader.add(activeRecordDdsp);
另外一直對使用java代碼的動態(tài)代理實現(xiàn)的aop感覺不好,如果有人能提供基于aspectj的嵌入代碼來實現(xiàn)事務來提高代碼的優(yōu)化,那就非常感謝了,目前有個aspectj簡單的例子:https://github.com/Dreampie/aspectj-demo
相關鏈接:
Resty 的詳細介紹:點擊查看
Resty 的下載地址:點擊下載
原文鏈接:https://www.oschina.net/news/68791/resty-1-2-0-snapshot
相關推薦
- 2022-09-10 PyCharm新建.py文件時默認添加信息的實現(xiàn)_python
- 2022-03-10 你知道如何自定義sort函數中的比較函數_C 語言
- 2022-06-29 python人工智能tensorflow函數tf.assign使用方法_python
- 2022-07-08 C#實現(xiàn)IDisposable接口釋放非托管資源_C#教程
- 2022-07-06 YOLOv5目標檢測之anchor設定_python
- 2022-05-22 基于docker?部署canvas-lms的詳細步驟_docker
- 2022-12-11 瀏覽器控制臺報錯Failed?to?load?module?script:解決方法_nginx
- 2022-10-12 浮動AppBar中的textField焦點回滾問題解決_Android
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學習環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支