精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

極簡的Restful框架推薦推薦:Resty(服務端+客戶端)

開發 前端
resty一款極簡的restful輕量級的web框架,擁有jfinal/activejdbc一樣的activerecord的簡潔設計,使用更簡單的restful框架。

擁有jfinal/activejdbc一樣的activerecord的簡潔設計,使用更簡單的restful框架。

restful的api設計,是作為restful的服務端***選擇(使用場景:客戶端和服務端解藕,用于對靜態的html客戶端(mvvm等),ios,andriod等提供服務端的api接口)

一、獨有優點:

1.極簡的route設計:

  1.   @GET("/users/:name")  //在路徑中自定義解析的參數 如果有其他符合 也可以用 /users/{name}  
  2. // 參數名就是方法變量名  除路徑參數之外的參數也可以放在方法參數里  傳遞方式 user={json字符串}  
  3. public Map find(String name,User user) {  
  4.   // return Lister.of(name);  
  5.   return Maper.of("k1""v1,name:" + name, "k2""v2");//返回什么數據直接return,完全融入普通方法的方式  

2.極簡的activerecord設計,數據操作只需短短的一行 ,支持批量保存對象

 

 

  1. //批量保存  
  2. User u1 = new User().set("username""test").set("providername""test").set("password""123456");  
  3. User u2 = new User().set("username""test").set("providername""test").set("password""123456");  
  4. User.dao.save(u1,u2);  
  5.    
  6. //普通保存  
  7. User u = new User().set("username""test").set("providername""test").set("password""123456");  
  8. u.save();  
  9.    
  10. //更新  
  11. u.update();  
  12. //條件更新  
  13. User.dao.updateBy(where,paras);  
  14. User.dao.updateAll(columns,where,paras);  
  15.    
  16. //刪除  
  17. u.deleted();  
  18. //條件刪除  
  19. User.dao.deleteBy(where,paras);  
  20. User.dao.deleteAll();  
  21.    
  22. //查詢  
  23. User.dao.findById(id);  
  24. User.dao.findBy(where,paras);  
  25. User.dao.findAll();  
  26.    
  27. //分頁  
  28. User.dao.paginateBy(pageNumber,pageSize,where,paras);  
  29. User.dao.paginateAll(pageNumber,pageSize); 

3.極簡的客戶端設計,支持各種請求,文件上傳和文件下載(支持斷點續傳)

 

  1. Client client=null;//創建客戶端對象  
  2. //啟動resty-example項目,即可測試客戶端  
  3. String apiUrl = "http://localhost:8081/api/v1.0";  
  4. //如果不需要 使用賬號登陸  
  5. //client = new Client(apiUrl);  
  6. //如果有賬號權限限制  需要登陸  
  7. client = new Client(apiUrl, "/tests/login""u""123");  
  8.    
  9. //該請求必須  登陸之后才能訪問  未登錄時返回 401  未認證  
  10. ClientRequest authRequest = new ClientRequest("/users", HttpMethod.GET);  
  11. ResponseData authResult = client.build(authRequest).ask();  
  12. System.out.println(authResult.getData());  
  13.    
  14. //get  
  15. ClientRequest getRequest = new ClientRequest("/tests", HttpMethod.GET);  
  16. ResponseData getResult = client.build(getRequest).ask();  
  17. System.out.println(getResult.getData());  
  18.    
  19. //post  
  20. ClientRequest postRequest = new ClientRequest("/tests", HttpMethod.POST);  
  21. postRequest.addParameter("test", Jsoner.toJSONString(Maper.of("a""諤諤")));  
  22. ResponseData postResult = client.build(postRequest).ask();  
  23. System.out.println(postResult.getData());  
  24.    
  25. //put  
  26. ClientRequest putRequest = new ClientRequest("/tests/x", HttpMethod.PUT);  
  27. ResponseData putResult = client.build(putRequest).ask();  
  28. System.out.println(putResult.getData());  
  29.    
  30.    
  31. //delete  
  32. ClientRequest deleteRequest = new ClientRequest("/tests/a", HttpMethod.DELETE);  
  33. ResponseData deleteResult = client.build(deleteRequest).ask();  
  34. System.out.println(deleteResult.getData());  
  35.    
  36.    
  37. //upload  
  38. ClientRequest uploadRequest = new ClientRequest("/tests/resty", HttpMethod.POST);  
  39. uploadRequest.addUploadFiles("resty", ClientTest.class.getResource("/resty.jar").getFile());  
  40. uploadRequest.addParameter("des""test file  paras  測試筆");  
  41. ResponseData uploadResult = client.build(uploadRequest).ask();  
  42. System.out.println(uploadResult.getData());  
  43.    
  44.    
  45. //download  支持斷點續傳  
  46. ClientRequest downloadRequest = new ClientRequest("/tests/file", HttpMethod.GET);  
  47. downloadRequest.setDownloadFile(ClientTest.class.getResource("/resty.jar").getFile().replace(".jar""x.jar"));  
  48. ResponseData downloadResult = client.build(downloadRequest).ask();  
  49. System.out.println(downloadResult.getData()); 

4.支持多數據源和嵌套事務(使用場景:需要訪問多個數據庫的應用,或者作為公司內部的數據中間件向客戶端提供數據訪問api等)5.極簡的權限設計,你只需要實現一個簡單接口和添加一個攔截器,即可實現基于url的權限設計

  1. // 在resource里使用事務,也就是controller里,rest的世界認為所以的請求都表示資源,所以這兒叫resource  
  2. @GET("/users")  
  3. @Transaction(name = {DS.DEFAULT_DS_NAME, "demo"}) //多數據源的事務,如果你只有一個數據庫  直接@Transaction 不需要參數  
  4. public User transaction() {  
  5. //TODO 用model執行數據庫的操作  只要有操作拋出異常  兩個數據源 都會回滾  雖然不是分布式事務  也能保證代碼塊的數據執行安全  
  6. }  
  7.    
  8. // 如果你需要在service里實現事務,通過java動態代理(必須使用接口,jdk設計就是這樣)  
  9. public interface UserService {  
  10.   @Transaction(name = {DS.DEFAULT_DS_NAME, "demo"})//service里添加多數據源的事務,如果你只有一個數據庫  直接@Transaction 不需要參數  
  11.   public User save(User u);  
  12. }  
  13. // 在resource里使用service層的 事務  
  14. // @Transaction(name = {DS.DEFAULT_DS_NAME, "demo"})的注解需要寫在service的接口上  
  15. // 注意java的自動代理必須存在接口  
  16. // TransactionAspect 是事務切面 ,你也可以實現自己的切面比如日志的Aspect,實現Aspect接口  
  17. // 再private UserService userService = AspectFactory.newInstance(new UserServiceImpl(), new TransactionAspect(),new LogAspect());  
  18. private UserService userService = AspectFactory.newInstance(new UserServiceImpl(), new TransactionAspect()); 

5.極簡的權限設計,你只需要實現一個簡單接口和添加一個攔截器,即可實現基于url的權限設計

  1. public void configInterceptor(InterceptorLoader interceptorLoader) {  //權限攔截器 放在***位 ***時間判斷 避免執行不必要的代碼  
  2.   interceptorLoader.add(new SecurityInterceptor(new MyAuthenticateService()));  
  3. }  
  4. //實現接口  
  5. public class MyAuthenticateService implements AuthenticateService {    
  6. //登陸時 通過name獲取用戶的密碼和權限信息  
  7.   public Principal findByName(String name) {  
  8.     DefaultPasswordService defaultPasswordService = new DefaultPasswordService();  
  9.    
  10.     Principal principal = new Principal(name, defaultPasswordService.hash("123"), new HashSet<String>() {{  
  11.       add("api");  
  12.     }});      
  13.     return principal;  
  14.   }    
  15.   //基礎的權限總表  所以的url權限都放在這兒  你可以通過 文件或者數據庫或者直接代碼 來設置所有權限  
  16.   public Set<Permission> loadAllPermissions() {  
  17.     Set<Permission> permissions = new HashSet<Permission>();  
  18.     permissions.add(new Permission("GET""/api/transactions**""api"));      
  19.     return permissions;  
  20.   }  

6.極簡的緩存設計,可擴展,非常簡單即可啟用model的自動緩存功能7.下載文件,只需要直接return file

  1. public void configConstant(ConstantLoader constantLoader) {  
  2.   //啟用緩存并在要自動使用緩存的model上  開啟緩存@Table(name = "sec_user", cached = true)  
  3.   constantLoader.setCacheEnable(true);  
  4. }  
  5.    
  6. @Table(name = "sec_user", cached = true)  
  7. public class User extends Model<User> {  
  8.   public static User dao = new User();  
  9.    

 

7.下載文件,只需要直接return file

  1. @GET("/files")  
  2. public File file() {  
  3.   return new File(path);  

8.上傳文件,通過getFiles,getFile把文件寫到服務器

  1. @POST("/files")  
  2. public UploadedFile file() {  
  3.   //Hashtable<String, UploadedFile> uploadedFiles=getFiles();  
  4.   return getFile(name);  

9.當然也是支持傳統的web開發,你可以自己實現數據解析,在config里添加自定義的解析模板

  1. public void configConstant(ConstantLoader constantLoader) {  
  2.   // 通過后綴來返回不同的數據類型  你可以自定義自己的  render  如:FreemarkerRender  
  3.   // constantLoader.addRender("json", new JsonRender());  
  4.   //默認已添加json和text的支持,只需要把自定義的Render add即可  

二、運行example示例:

1.運行根目錄下的pom.xml->install (把相關的插件安裝到本地,功能完善之后發布到maven就不需要這樣了)

2.在本地mysql數據庫里創建demo,example數據庫,對應application.properties的數據庫配置

3.運行resty-example下的pom.xml->flyway-maven-plugin:migration,自動根具resources下db目錄下的數據庫文件生成數據庫表結構

4.運行resty-example下的pom.xml->tomcat7-maven-plugin:run,啟動example程序

提醒:推薦idea作為開發ide,使用分模塊的多module開發。

源碼鏈接:OSC -> Resty   Github -> Resty

本文出自:http://my.oschina.net/wangrenhui1990/blog/365310

責任編輯:林師授 來源: 王仁輝的博客
相關推薦

2021-10-18 05:00:38

語言GoRequestHTTP

2021-05-25 08:20:37

編程技能開發

2009-08-21 15:59:22

服務端與客戶端通信

2009-08-21 16:14:52

服務端與客戶端通信

2011-09-09 09:44:23

WCF

2021-08-01 23:18:21

Redis Golang命令

2024-03-06 14:58:52

客戶端微服務架構

2014-12-22 11:04:30

Windows AzuiPhone虛擬機

2010-11-19 14:22:04

oracle服務端

2023-03-06 08:01:56

MySQLCtrl + C

2010-03-18 17:47:07

Java 多客戶端通信

2009-08-21 15:54:40

服務端與客戶端

2009-08-21 15:36:41

服務端與客戶端

2019-07-05 17:00:33

Redis數據庫可視化管理

2015-08-26 17:31:03

UbuntuBT客戶端

2011-05-18 09:56:31

UbuntuLinux客戶端

2023-04-03 08:13:05

MySQLCtrl + C

2012-11-28 11:05:42

IBMdW

2022-08-09 07:32:03

MySQLWindowsLinux

2010-06-01 13:19:04

點贊
收藏

51CTO技術棧公眾號

日本三级视频在线播放| 国产一级在线播放| 国产成人免费看| 亚洲国产精品嫩草影院久久av| 日韩一区欧美二区| 一区国产精品视频| 一级黄色高清视频| 青青草在线播放| 日韩av不卡一区二区| 久久亚洲精品中文字幕冲田杏梨| 99re6这里有精品热视频| 人人妻人人玩人人澡人人爽| 国产成人3p视频免费观看| 欧美日韩在线播放三区| 一本一生久久a久久精品综合蜜 | 一起草av在线| 国产一区亚洲| 中文字幕精品www乱入免费视频| av动漫在线看| 欧美96在线| 国产精品嫩草99av在线| 色系列之999| 影音先锋人妻啪啪av资源网站| 宅男在线观看免费高清网站| 99久久久国产精品免费蜜臀| 91精品久久久久久久久久另类| 欧美黄网站在线观看| 日本不卡在线| 久久久久久97三级| 国产嫩草一区二区三区在线观看| 久久久久久久久毛片| 亚洲精品进入| 精品美女一区二区三区| 鲁一鲁一鲁一鲁一色| 国产原创视频在线观看| 国产人妖乱国产精品人妖| 国产精品日韩欧美一区二区三区 | 在线中文字幕第一区| 欧洲av一区二区嗯嗯嗯啊| 7777在线视频| 99久久精品国产一区二区成人| 91精品天堂福利在线观看| 亚洲欧美色婷婷| 亚洲啪av永久无码精品放毛片| 丁香花在线观看完整版电影| 最新不卡av在线| 日韩精彩视频| 人成在线免费视频| av不卡免费在线观看| 99久re热视频这里只有精品6| 免费在线黄色片| 91精品国产自产拍在线观看蜜| 精品日产卡一卡二卡麻豆| 国产又猛又黄的视频| 欧美理论影院| 色综合网色综合| 人妻熟女一二三区夜夜爱| 国产无遮挡裸体视频在线观看| 久久众筹精品私拍模特| 午夜精品在线视频| 国产美女久久久久久| 97视频热人人精品免费| www.日韩av.com| 性生交大片免费看l| 精品中文字幕一区二区三区| 在线观看91av| 国产人妻精品久久久久野外| 日韩激情综合| 亚洲高清久久久久久| 日本成人在线免费视频| 欧美1级2级| 欧美亚洲尤物久久| 小明看看成人免费视频| 精品国产亚洲一区二区在线观看 | 国产99久久久久| 成人av蜜桃| 少妇荡乳情欲办公室456视频| 丝袜亚洲另类欧美| 国产精品激情av电影在线观看| 永久免费看黄网站| 欧美精品一卡| 韩日精品中文字幕| 在线免费观看av网址| 麻豆精品新av中文字幕| 亚洲中国色老太| 日日夜夜精品免费| 国产亚洲成aⅴ人片在线观看| 国产精品区二区三区日本| 水莓100在线视频| 国产亚洲精品中文字幕| 一区一区视频| 99riav视频在线观看| 色婷婷亚洲综合| 国产传媒免费观看| 美女av一区| 欧美日韩国产综合一区二区| 午夜天堂在线视频| 欧美亚洲国产日韩| 在线性视频日韩欧美| 天天干中文字幕| 先锋影音国产一区| 51蜜桃传媒精品一区二区| 日本xxxx人| 国产精品毛片大码女人| 99在线免费视频观看| 亚洲精品.com| 亚洲国产高清自拍| 国产一区在线观看免费| 99综合在线| 成人精品一区二区三区| 日韩福利一区二区| 一区2区3区在线看| 天天干天天草天天| 欧美自拍一区| 欧美乱大交xxxxx另类电影| 国产一级免费视频| 国产91精品免费| 亚洲三区四区| 成人av观看| 精品国产伦理网| 亚洲天堂网av在线| 日韩成人精品在线| 精品欧美日韩| 天天干免费视频| 国产精品久久久久桃色tv| 国产精品后入内射日本在线观看| 狠狠操一区二区三区| 欧美色窝79yyyycom| 精品无码国产一区二区三区51安| 日韩美女毛片| 色综合导航网站| 国产免费av电影| 国产女同性恋一区二区| 国产精品自拍片| 91蝌蚪精品视频| 精品精品国产高清a毛片牛牛| 黄页网站在线看| 国产成人久久精品一区二区三区| 91麻豆精品91久久久久久清纯 | 精品一区二区三区在线播放| 国产在线欧美日韩| 日本小视频在线免费观看| 欧美久久久久久久久久| 日本成人午夜影院| 久久这里有精品15一区二区三区| 国产中文日韩欧美| 91福利在线视频| 欧美综合在线视频| 人妻av无码一区二区三区| 亚洲欧美日韩国产综合精品二区| 国产精品极品美女在线观看免费 | 日韩成人一区二区| 久久久亚洲午夜电影| 日韩美女av在线免费观看| 丰满人妻av一区二区三区| 国产精品色婷婷久久58| 好男人www社区| 精品久久网站| 国产精品自在线| 伊人免费在线| 制服丝袜亚洲网站| 中文字幕av免费在线观看| 国产成人综合在线| 热99这里只有精品| 国产99精品| 国产又爽又黄的激情精品视频| 精品人妻一区二区三区日产乱码| 99精品欧美一区二区蜜桃免费| 国产精品精品一区二区三区午夜版 | 国产91久久精品一区二区| 国产成人精品在线视频| 77导航福利在线| 日韩欧美色综合| 亚洲国产第一区| 午夜综合激情| 亚洲人体一区| 伊人久久大香线蕉av超碰| 97香蕉久久超级碰碰高清版| 日本1级在线| 欧美精品免费视频| 国产精品第九页| 26uuu亚洲婷婷狠狠天堂| 久久久精品麻豆| 欧美欧美天天天天操| 美女黄毛**国产精品啪啪| 成人高清免费在线| 精品国产乱码久久久久久老虎| 国产高清一区二区三区四区| 日韩成人免费电影| 亚洲欧美一二三| 爱情电影网av一区二区| 国外成人在线视频| 国产资源在线观看| 欧美日韩一区不卡| 日本一区二区三区四区五区| 久久久午夜精品理论片中文字幕| 亚洲色图都市激情| 中文幕av一区二区三区佐山爱| 中文字幕日韩精品在线| 国产精品久久久久久在线| 亚洲一区二区三区视频在线 | 91禁国产网站| 五月婷婷狠狠干| 91麻豆123| 免费看国产曰批40分钟| av中文字幕一区二区| 成人有码在线视频| f2c人成在线观看免费视频| 亚洲欧美三级伦理| 亚洲精华国产精华精华液网站| 亚洲国产精品成人综合色在线婷婷 | 999精品视频在线| 93在线视频精品免费观看| 国产精品久久7| 一二区成人影院电影网| 久久成人18免费网站| 国模吧精品人体gogo| 日韩一区二区三区电影| 国产suv精品一区二区33| 最新久久zyz资源站| 日韩女同一区二区三区| 国产在线视频精品一区| 91国视频在线| 欧美 日韩 国产一区二区在线视频 | 亚洲天堂小视频| 蜜桃av一区| 91免费人成网站在线观看18| 久草在线新免费首页资源站| 亚洲精品一区av在线播放| 国产亲伦免费视频播放| 欧美色欧美亚洲另类二区| 日韩成人免费在线视频| 18涩涩午夜精品.www| 五月婷婷综合在线观看| 99国产一区| 深夜福利成人| 精品欧美午夜寂寞影院| 成人夜晚看av| 国产精品伦一区二区| 国产成人精品在线视频| 麻豆网站免费在线观看| 欧美成人久久久| 精品美女视频在线观看免费软件| 精品视频在线免费看| 欧美一级视频免费观看| 一区二区三区av电影| 女同久久另类69精品国产| 中文字幕精品一区| 亚洲理论片在线观看| 91在线你懂得| 日韩综合第一页| 91社区在线播放| 精品人妻一区二区三区日产| 国产91精品一区二区麻豆网站| 国产精品一色哟哟| 欧美激情91| 日韩最新中文字幕| 久久久久亚洲| 黄色片免费在线观看视频| 99热在线成人| 亚洲一区二区三区涩| 国产一区二区三区天码| 欧美日韩在线高清| 国产免费不卡| 91爱视频在线| 多野结衣av一区| 热草久综合在线| 自拍视频在线看| 欧美洲成人男女午夜视频| 蜜桃视频成人m3u8| 国产精品视频免费在线| 日韩成人综合网站| 91久久久久久| 精品女人视频| 青青成人在线| 久久婷婷蜜乳一本欲蜜臀| 中文字幕第50页| 亚洲夜间福利| 一女被多男玩喷潮视频| 国内精品久久久久久久影视麻豆| 在线视频不卡一区二区三区| 久久免费大视频| 可以在线看黄的网站| 欧美激情精品久久久六区热门| 亚洲一区免费看| 亚洲激情久久| av在线播放天堂| 爽好久久久欧美精品| 性生活免费在线观看| 国产九色精品成人porny| 韩国三级hd中文字幕有哪些| 97精品国产露脸对白| 加勒比综合在线| 最新日韩av在线| 久久高清免费视频| 亚洲成av人影院| 无码人妻精品一区二| 欧美一区二区在线免费观看| 亚洲男女视频在线观看| 亚洲欧美精品中文字幕在线| 超碰在线caoporn| 91精品国产色综合久久不卡98| 亚洲综合影视| 久久久久久亚洲| 欧洲亚洲精品久久久久| 国产精品加勒比| 俺要去色综合狠狠| 成人毛片一区二区| 久久99热99| 性色av蜜臀av色欲av| 一区二区在线观看不卡| 级毛片内射视频| 国产精品国产三级国产三级人妇 | 国产精品99精品| 91福利社在线观看| 国产乱码精品一区二区三区精东| 欧美日韩国产美女| 秋霞欧美在线观看| 久久av.com| 欧美free嫩15| 国产精品免费区二区三区观看 | 少妇av一区二区三区| 日本综合在线| 国内精品久久影院| 黑人巨大亚洲一区二区久 | 亚洲欧美综合精品久久成人| √天堂资源地址在线官网| 久久久久久久999精品视频| 91伊人久久| 欧美12av| 亚洲一区亚洲| 逼特逼视频在线观看| 国产欧美日韩另类一区| 欧产日产国产69| 亚洲加勒比久久88色综合| 手机看片久久久| 69堂成人精品免费视频| 91精品国产91久久久久游泳池| 伊人久久男人天堂| 白白色在线观看| 国产欧美日韩中文| 久久中文视频| 日本人视频jizz页码69| 国产精品77777竹菊影视小说| 亚洲日本久久久| 最新不卡av在线| 一级片在线观看视频| 日韩在线视频网| avav成人| 日韩一本精品| 日本美女视频一区二区| 国产真实乱人偷精品人妻| 精品久久久久久国产91| 亚洲三区在线播放| 97在线观看免费| 成人自拍在线| 精品这里只有精品| 成人av网站免费观看| 日韩女优一区二区| 日韩一区国产二区欧美三区| а√天堂8资源在线官网| 国产欧美一区二区三区视频| 国产精品久久久久9999赢消| 亚洲精品第三页| 亚洲视频一二区| 国产综合在线播放| 88国产精品欧美一区二区三区| 欧美日韩亚洲国产| 视频一区在线免费观看| 免费成人小视频| 奇米网一区二区| 日韩欧美123| 超碰中文在线| 久久精品国产理论片免费| 日韩精品乱码av一区二区| 性爱在线免费视频| 欧美三级中文字幕| 日韩另类在线| 成人性色av| 99精品热视频只有精品10| 播金莲一级淫片aaaaaaa| 在线看日韩精品电影| 97影院秋霞午夜在线观看| 国产成人免费观看| 国产日韩1区| 91麻豆精品成人一区二区| 日韩午夜电影在线观看| 调教一区二区| 日本在线成人一区二区| 麻豆高清免费国产一区| 精国产品一区二区三区a片| 亚洲国产又黄又爽女人高潮的| 国产精品探花在线| 久久精品国产99精品国产亚洲性色| 综合色一区二区| 成人免费av片| 精品视频全国免费看| 亚洲区欧洲区| 水蜜桃一区二区| 国产不卡在线播放|