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

淺談如何構建Java Web快速開發框架

開發 后端
在Ruby on Rails中,建一張表,執行一句ruby命令行生成一個scaffold腳手架程序,然后寫一句代碼,就可以完成了對一個表或者說是資源的CRUD操作的功能的實現。這激發了作者的興趣,用Java,能不能更簡單的完成這件事。

我在我們應該怎樣看待框架 中,實現了一個JDBC版的Base類,和一個Hibernate版的Base類,取模仿RoR的ActiveRecord,這樣我們編程的時候,只需要實現一個Base的子類,就可以完成CRUD了。

我的畢設題目是與Rest ,更準確說是與ROA有關的,另外就是在看Spring MVC對于慣例優先 (Convention over Configuration,CoC)原則的實現。

Web架構的四個元素

無論是Rails還是Spring MVC都是MVC實現,因此我的研究也肯定是基于MVC模式的。那么分別來關注M,V和C,另外就是將url和C進行映射的Router(或者說是Struts里的映射文件)。

首先是M,我不想自己編M,那就自動生成,怎么才能自動生成呢,根據數據庫自動生成,而且我生成要是一個ActiveRecord模式的類。所以不是像過去弄個HashMap就能混過去了。之后就是看了ASM3.1和ClassLoader的知識,發現這是可以實現的。如下:

先整個測試:

@Test

publicvoidgerneratorClass(){

  1. try{
  2. Mapfields=newHashMap();
  3. fields.put("id",1l);
  4. fields.put("name","wanxing");
  5. EntityGernerator.generateEntity("Student",fields);
  6. EntityGernerator.invoke("add");
  7. }catch(Exceptione){
  8. //TODOAuto-generatedcatchblock
  9. e.printStackTrace();
  10. }
  11. }

這塊的實現我想了一下,EntityGernerator的generateEntity方法到底只是創建一個class還是連同實例化對象,而其還有invoke方法,這看上去不太對,嗯,它應該是只生成class就結束使命了。不過以后再迭代吧。

實現的代碼很簡單,就是利用了ASM3.1,就搞定了。有兩點需要聲明:

1 可以按需要設定生成類的父類

2 只能創建類屬性,不能創建方法,因為方法的實現太復雜,用JVM指令寫會死人,不如轉向動態語言了,而且它繼承了有用的父類,就已經完成了自己的使命了。

V和C都可以用通用的,就像用通用DAO一樣。關于V有個特別之處,那就是FrontController,它來調配各個Controller,依照URI和Controller的Mapping,這符合Roy Fielding博士對于資源的定義:資源是 一種概念上的映射 ——服務器接收到標識符(標識這個映射),將它應用于當前的映射實現(mapping implementation,通常是與特定集合相關的樹的深度遍歷和/或哈希表的組合)上,以發現當前負責處理該資源的處理器實現 ,然后處理器實現基于請求的內容選擇適當的動作+響應 。在RoR里這叫做Router。另外V中可以根據HTTP請求返回適當的Presentation。

REST與CoC

按照“慣例優先原則”可以做很多事情,比如Blog類對應BlogController,對應/blog。我們可以將該原則落實到以上四個元素上:M,V,C和Router。之后就是按照上述對應關系,形成一種簡單的開發框架,我們需要做的事情只是:

1 創建數據庫Schema,比如建立表Blog

2 配置數據庫連接,選擇使用何種數據庫

3 啟動Tomcat,在瀏覽器的地址欄中輸入http://localhost:8080/blog/new創建Blog(返回寫blog的表單),http://localhost:8080/blog/12,顯示文章;http://localhost:8080/blog/edit,返回修改表單;http://localhost:8080/blog/list,返回所有blog,加上q?time=2009-05-08或者http://localhost:8080/2009-05-08/blog/list,按時間查詢,后者的問題是如果Blog表有兩個字段是時間就沒辦法了,但是我們可以約定它只有一個時間的時候默認結果,這就是“慣例優先”作用。

輸入這些URL只是證明系統可以正常的工作。然后你可以定制你的HTML頁面,把這些鏈接放到你喜歡的地方,或者作為按鈕對應的服務。所有的服務,都是REST的。一個RCP客戶端也可以使用,或者是Delphi。

系統在背后默默的根據數據庫Schema創建了Blog類,然后其他都是通用的組件,放入Blog類,比如GenericController.setModel(T model),將Blog類的實例放入。

靈活性與可擴展性

如果只是這樣,那么這個系統實際上做不了什么太有價值的事情(這只是一個數據庫外的薄層),“慣例優先”并不是“慣例決定”,我們必須能讓Developer開發自己個性化的組件,以完成更強大的功能。

那么就要有如下邏輯:

1 對于M:首先檢查classpath里是否有url中尋找的實體(比如blog,我們不能說那是資源,資源是映射),這個實體就是Developer創建的,如果沒有,則去數據庫中查找名為blog的表,創建Blog類(并不在文件系統中生成這個class)。如果也沒有,則返回not found。

2 對于C:首先根據Router中的默認定義,尋找BlogController,檢查是否存在于classpath中,沒有則用ControllerGenerator生成BlogController(與EntityGenerator相同,不過既然我的Generator可以指定父類,實際上用一個ClassGenerator就應該OK了)。

3 對于V:現在默認路徑下尋找頁面(jsp或者html),如果沒有,則創建Blog頁面流(Stream)返回給客戶端。

4 對于Router:默認就是/blog對應BlogController。當然你可以建立自己的Router文件,來修改映射關系。

“慣例優先”,那這個慣例是誰的慣例呢? 其實Router的可Developer定制就表示了系統可以支持在四個Web架構元素中之間建立自己的“慣例”。比如,所有的表名都加上T_Blog,但是生成類名是Blog,而Controller是BlogAction(有人就是喜歡叫它Action),OK,這都沒問題。

技術細節

我們回到M討論。我這個M既要承擔ORM的責任又要承擔DVM(Domain View Mapping)的職責。也就是說,我期望我的對象里面可以關聯其他對象,同時我也希望我在UI上顯示正確的中文名,而不是字段名。

先說ORM,關聯關系(繼承就先別指望自動生成了),我可以根據數據庫表的主外鍵關系生成,然后用ASM動態加上注解(還是基于Hibernate)。我現在唯一不確定的是,用ASM生成的屬性,類型可以是另外的類嗎?答案是可以,跟內置的Java類型是一樣一樣的。

然后是我要讓生成HTML或者XML能正確顯示字段的Label,這個可以提取表的注釋,然后利用ASM動態加上注解。

Just Play

對于那些基礎數據的簡單維護,或者你的系統設計本來就不想什么OO范型,那么這個基礎框架是有用的,面對真正復雜的大型企業應用,它比較好的一點是不會阻止你實現復雜的對象圖。

寫到這,我第一次感到:我干嘛還要用Java呢?因此最后我只能說,Just Play,正如Dave所說,在真正的項目中,代碼生成并不像看起來那么有用,但是,起碼你有了一個好的腳手架~~~

【編輯推薦】

  1. 快速啟動一個Java Web編程框架
  2. 為Java Web應用程序增加入侵檢測功能
  3. 新一代Java Web開發框架JSF訪談實錄
責任編輯:彭凡 來源: javaeye
相關推薦

2010-11-17 12:59:52

2024-09-29 16:36:16

2012-01-13 11:02:27

JavaWebOpenXava

2011-12-16 09:49:38

Java

2011-11-08 10:36:42

Java

2011-09-08 17:48:33

Web Widget

2009-06-18 12:06:30

Java Web開發框

2009-09-03 16:52:44

Java Web開發框

2009-05-08 09:32:27

JavaWeb編程框架

2011-02-17 11:18:29

PythonWebRuby

2009-07-09 15:31:23

構建Python開發環

2016-01-27 09:39:13

JoobyJava Web流程

2010-10-08 10:17:59

Web服務安全

2011-08-23 17:52:39

LUAWeb 開發

2009-07-29 09:38:06

Web開發ASP.NET

2009-07-06 10:25:14

Java Web Se

2021-07-28 06:51:08

FlaskPythonWeb

2009-06-25 17:14:59

JSF框架

2011-11-01 09:23:34

2011-03-21 14:41:04

LAMPapacheweb
點贊
收藏

51CTO技術棧公眾號

久久精品无码一区二区三区| 亚洲乱码精品| 欧美视频免费在线| 欧美午夜精品久久久久久蜜| av网站中文字幕| 精品一区二区三区中文字幕老牛| 欧美日韩情趣电影| 波多野结衣 作品| 日韩毛片在线一区二区毛片| 丝袜亚洲另类欧美综合| x99av成人免费| 欧美双性人妖o0| 国产精品久久久久77777丨| 亚洲特黄一级片| 久久国产精品-国产精品| 怡红院成永久免费人全部视频| 午夜精品网站| 一区二区三区国产在线观看| 人妻巨大乳一二三区| 欧美成人免费电影| 曰韩精品一区二区| 日韩av影视| 亚洲精品一级片| 免费一级片91| 欧美成人小视频| 国产av自拍一区| 亚洲网址在线观看| 欧美午夜一区二区三区| 福利在线一区二区| 色欧美激情视频在线| 99re在线精品| 91亚洲精品视频| 中文字幕手机在线视频| 欧美另类视频| 中文字幕一区二区三区电影| 中文字幕在线播放一区| 不卡一区视频| 在线观看日韩电影| 欧美一区二区中文字幕| 精精国产xxxx视频在线| 久久精品一级爱片| 好看的日韩精品视频在线| 国产视频在线观看免费| 老妇喷水一区二区三区| 九色精品免费永久在线| 东方伊人免费在线观看| 日韩有码av| 亚洲第一精品夜夜躁人人躁| 佐佐木明希电影| 精品国产亚洲一区二区在线观看 | 亚洲另类欧美自拍| 91九色蝌蚪porny| 综合在线影院| 色综合色综合色综合色综合色综合| 国产午夜亚洲精品羞羞网站| 美女福利精品视频| 可以免费看av的网址| 欧美丝袜丝交足nylons172| 精品一区二区电影| 亚洲乱码国产乱码精品精大量| 97久久亚洲| 精品国产一区二区三区四区四| 在线免费观看av网| 精品久久国产一区| 3751色影院一区二区三区| 三级av免费观看| 日本一区免费网站| 在线观看欧美日本| 天堂一区在线观看| 亚洲ww精品| 9191精品国产综合久久久久久| 孩娇小videos精品| 精品99re| 日韩欧美美女一区二区三区| 国产精品久久久久久久av福利| 99tv成人影院| 精品久久久久一区| 国产性生活毛片| 亚洲免费专区| 中文字幕免费精品一区| 欧美88888| 一本一道久久a久久精品蜜桃| 久久人人爽亚洲精品天堂| 黑人操日本美女| 国产精品久久久久一区二区三区厕所| 久久久av亚洲男天堂| 欧产日产国产v| 一本色道精品久久一区二区三区| 日本精品视频在线| 国产一区二区在线视频聊天| 国产精品18久久久| 久久99精品久久久久久久青青日本| 青青青草网站免费视频在线观看| 欧美激情在线一区二区三区| 在线视频一二三区| 182在线视频观看| 日本道在线观看一区二区| 色播五月激情五月| 国产一区在线电影| 中文字幕国产亚洲| 久久97人妻无码一区二区三区| 国产亚洲精品v| 国产精品欧美亚洲777777| 精品久久久免费视频| 99riav久久精品riav| 中文字幕中文字幕一区三区| 1234区中文字幕在线观看| 欧美性生活久久| 亚洲少妇一区二区三区| 精品国产aⅴ| 欧美富婆性猛交| 中文字幕91爱爱| 成人18视频日本| 最新精品视频| 亚洲黄色免费av| 欧美一级欧美三级在线观看| 88久久精品无码一区二区毛片| 亚洲一区欧美| 国产精品高清免费在线观看| 欧美 日韩 国产 在线| 日本一区二区三区四区| www插插插无码视频网站| 国产精品无码久久久久| 亚洲第一级黄色片| h色网站在线观看| 日韩av午夜在线观看| 国产美女在线精品免费观看| 欧美尤物美女在线| 色悠久久久久综合欧美99| 中文字幕在线国产| 艳女tv在线观看国产一区| 国产精品白嫩美女在线观看| 视频一区 中文字幕| 樱桃国产成人精品视频| 中文字幕第100页| 国产中文精品久高清在线不| 国自在线精品视频| 不卡视频免费在线观看| 一区二区中文视频| 性欧美极品xxxx欧美一区二区| 欧美成人午夜77777| 欧美国产日产韩国视频| 国产精品视频a| 中文字幕中文字幕一区二区| 国产真人无码作爱视频免费| 欧美三级午夜理伦三级小说| 午夜精品理论片| 欧美一级特黄aaaaaa| 一区二区三区精品久久久| 亚洲天堂av一区二区三区| 日韩a一区二区| 国产精品视频在线观看| av天在线观看| 欧美日韩在线一区二区| 手机av在线不卡| 日韩av网站在线观看| 亚洲欧美久久234| 成人综合网站| 日韩中文综合网| 国产精品无码AV| 亚洲精品欧美激情| 美女流白浆视频| 影音先锋久久久| 国产综合 伊人色| 涩涩视频在线免费看| 日韩成人激情视频| 色av性av丰满av| 国产欧美综合色| 欧美伦理片在线观看| 大胆日韩av| 91精品久久久久久久久久另类| 免费在线观看av片| 欧美一区二区黄| 国产一级片免费观看| av资源站一区| 91av在线免费播放| 日韩欧美一区免费| 91九色偷拍| 乱人伦视频在线| 伊人久久久久久久久久久| 中文字幕在线观看第二页| 日韩毛片高清在线播放| 亚洲911精品成人18网站| 松下纱荣子在线观看| 亚洲精品色图| 国产精品国产亚洲精品看不卡15 | 久久99精品久久久久久欧洲站| 992tv成人免费影院| 国产在线资源| 91精品国产乱| 亚洲男人第一av| 国产欧美一区二区三区鸳鸯浴| 中文字幕一区久久| 在线观看日韩av电影| 欧美一区二区三区四区夜夜大片| 日韩专区视频网站| 性欧美视频videos6一9| 在线观看的av| 精品成a人在线观看| 91午夜精品亚洲一区二区三区| 亚洲视频在线一区观看| 国产xxxx视频| 开心九九激情九九欧美日韩精美视频电影 | 秋霞影院一区二区三区| 国产精品视频精品| 国产乱妇乱子在线播视频播放网站| 日韩av在线电影网| 中文字幕在线2018| 亚洲444eee在线观看| 国产一区二区三区在线免费| 91tv国产成人福利| 一区二区三区四区亚洲| 少妇久久久久久久久久| 国产精品亚洲第一区在线暖暖韩国| 鲁一鲁一鲁一鲁一色| 国产精品久久久久久久免费观看| 国产一区二区黄色| 高清精品久久| 国产精品 欧美在线| 国产日产一区二区| 亚洲精品中文字幕有码专区| 性欧美18一19性猛交| 日本高清不卡一区| 91浏览器在线观看| 中文字幕亚洲区| 日本一级片在线播放| 国产一区视频网站| 成人性生交免费看| 日韩激情中文字幕| 无罩大乳的熟妇正在播放| 欧美日韩亚洲一区在线观看| 亚洲精品不卡| 国产欧美一区二区精品久久久| 国产精品av一区| 免费一区二区三区在线视频| 国产欧美一区二区三区四区| 欧美黑人粗大| 55夜色66夜色国产精品视频 | 粉嫩av一区二区| 91色视频在线观看| 欧美国产视频| 国产精品伦子伦免费视频| 精品国产免费人成网站| 91国内在线视频| 交100部在线观看| 91爱爱小视频k| 超碰在线97国产| 欧美日本高清视频| 手机在线免费看av| 欧美精品中文字幕一区| 麻豆tv入口在线看| 久久亚洲精品一区二区| 在线激情网站| 亚洲欧美中文日韩在线| 天天摸天天碰天天爽天天弄| 亚洲精品一区二区三区蜜桃下载| 亚洲精品国产av| 欧美一级在线免费| 亚洲产国偷v产偷v自拍涩爱| 精品乱人伦小说| 手机在线观看毛片| 精品亚洲aⅴ在线观看| 欧洲亚洲在线| 亚洲日本成人女熟在线观看| 国产黄色免费在线观看| 亚洲网站在线播放| 在线日本中文字幕| 日韩视频一区在线| 性欧美1819sex性高清大胸| 欧美精品999| 欧美办公室脚交xxxx| 欧美在线xxx| 播放一区二区| 成人网在线免费看| 国产免费区一区二区三视频免费 | 97人洗澡人人免费公开视频碰碰碰| 福利成人导航| 国产精品www色诱视频| 日韩欧国产精品一区综合无码| 亚洲一区二区少妇| 老牛影视av一区二区在线观看| 欧美在线一区二区三区四区| 99久久影视| 热99这里只有精品| 日韩高清在线一区| 99精品视频免费版的特色功能| jlzzjlzz国产精品久久| 欧美激情 一区| 亚洲综合激情网| 亚洲精品国产欧美在线观看| 日韩一区二区三免费高清| 三级在线播放| 精品国产一区二区三区四区在线观看 | 波多野结衣av无码| 欧美一级黄色片| 三级理论午夜在线观看| 精品国产欧美成人夜夜嗨| 6699嫩草久久久精品影院| 国产mv久久久| 综合激情网...| 亚洲国产精品www| 91黄色在线| 亚洲超丰满肉感bbw| 国产精品美女久久久久av爽| 欧美日韩在线三级| 天堂av在线免费观看| 久久夜精品香蕉| 男人最爱成人网| 成人欧美一区二区三区视频xxx| 欧美欧美黄在线二区| 日本免费成人网| 久久国产精品第一页| 国产精品300页| 亚洲精品久久久蜜桃| 亚洲欧美一二三区| 日韩美女在线视频| 成人18在线| 欧美一区二区影院| 永久免费精品视频| 亚洲欧美成人一区| 久久九九免费| 99re久久精品国产| 亚洲一二三区不卡| 亚洲一区 中文字幕| 亚洲欧美在线磁力| 超碰在线视屏| 国产精品12| 午夜国产精品视频免费体验区| 日韩一区二区三区久久| 久久婷婷久久一区二区三区| 国产成人精品亚洲男人的天堂| 欧美一区二区三区免费| 91福利在线视频| 国产精品pans私拍| 亚洲va久久久噜噜噜久久| 青青草国产免费| 高清av一区二区| 黄色在线观看免费| 制服丝袜成人动漫| www.国产精品.com| 国产精品激情av电影在线观看| 亚洲国产欧美日韩在线观看第一区| 人人妻人人添人人爽欧美一区| 成人看片黄a免费看在线| 麻豆changesxxx国产| 91精品福利在线一区二区三区 | 在线精品视频视频中文字幕| 天堂网在线最新版www中文网| 国产欧美在线一区二区| 亚洲手机在线| 在线免费播放av| 狠狠做深爱婷婷久久综合一区| 五月婷婷六月丁香综合| 欧美精品第一页在线播放| 丁香一区二区| 日韩小视频在线播放| 2024国产精品| 黄色一级视频免费看| 亚洲桃花岛网站| 成人国产精品入口免费视频| 亚洲精品日韩在线观看| 久久精品国产亚洲一区二区三区| 日本精品在线免费观看| 91麻豆精品国产91久久久久久久久 | 各处沟厕大尺度偷拍女厕嘘嘘| 91亚洲男人天堂| 无码一区二区三区| www.99久久热国产日韩欧美.com| 亚洲国产91视频| 亚洲精品少妇一区二区| 成人黄色国产精品网站大全在线免费观看| 日本在线视频免费| 亚洲人成网站777色婷婷| 成人1区2区| 亚洲av首页在线| av影院午夜一区| 91丨九色丨海角社区| 久久五月天色综合| 国产成人精品福利| 日韩视频在线免费看| 国产精品免费aⅴ片在线观看| 国产富婆一级全黄大片| 午夜精品久久久久久99热| 成人av国产| www.欧美com| 色激情天天射综合网| 免费超碰在线| 精品国产乱码久久久久软件| 老司机午夜精品视频| 99鲁鲁精品一区二区三区| 精品电影一区二区| 中文字幕日本一区二区| 黑人巨茎大战欧美白妇| av在线不卡电影| 亚洲图片在线播放| 亚州国产精品久久久| 成人在线免费小视频| 天天躁日日躁狠狠躁免费麻豆| 91精品办公室少妇高潮对白| 91蜜桃在线视频|