精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

已婚少妇美妙人妻系列| 精品无码久久久久久久动漫| 91精品一区二区三区蜜桃| 久久影院一区二区三区| 五月激情综合婷婷| 亚洲电影一二三区| 丰满人妻一区二区三区免费| 三级久久三级久久| 欧美乱妇40p| 在线免费观看麻豆| 亚洲啪av永久无码精品放毛片| 999久久久国产| 亚洲精品第一| 日韩欧美高清在线视频| 国产在线拍揄自揄拍无码| 日韩午夜影院| 国产精品99久久久久久久女警| 国产999视频| 久久久香蕉视频| 97视频热人人精品免费| 亚洲精品之草原avav久久| 日本中文字幕在线不卡| av一区在线| 欧美日韩国产黄| 免费成人进口网站| 成人动漫在线免费观看| www.亚洲免费av| 亚洲va欧美va国产综合久久| 怡红院av久久久久久久| 99热精品在线| 欧美激情综合色综合啪啪五月| 青青青视频在线免费观看| 亚洲+小说+欧美+激情+另类 | 欧美精品久久久久久久久久久| 在线观看完整版免费| 久久综合狠狠综合久久综合88| 97人人干人人| 99国产精品久久久久99打野战| 蜜臀久久99精品久久久画质超高清 | 99国精产品一二二线| 中文字幕第一页在线播放| 国产欧美日韩综合一区在线播放| 欧美激情综合亚洲一二区| 欧美三级黄色大片| 91精品动漫在线观看| 在线亚洲午夜片av大片| 国产91丝袜美女在线播放| 少妇精品久久久一区二区| 日韩av在线免费播放| 粉嫩av懂色av蜜臀av分享| 99re6热只有精品免费观看| 欧美一级高清片在线观看| 天堂av2020| 亚洲色图图片| 日韩三级视频中文字幕| 搡的我好爽在线观看免费视频| 亚洲电影二区| 欧美一区二区二区| 韩国三级hd中文字幕有哪些| 亚洲国产中文在线二区三区免| 日韩一区二区三区电影在线观看| 性一交一黄一片| 538任你躁精品视频网免费| 日韩手机在线导航| 怡红院一区二区| 欧美在线导航| 亚洲欧美中文另类| 国产精品av久久久久久无| 成人羞羞网站入口免费| 最近2019中文免费高清视频观看www99 | 亚洲一区二区三区免费| 亚洲第一页中文字幕| 黄色免费视频网站| av永久不卡| 美女国内精品自产拍在线播放| 久久久国产精华液| 日韩视频中文| 国产精品国产三级国产aⅴ9色| 亚洲天堂视频在线| 国产99久久久国产精品潘金 | 精品国产精品自拍| 日本老熟妇毛茸茸| 久久九九精品视频| 亚洲精品中文字幕av| 亚洲av毛片基地| 欧美韩国一区| 日韩69视频在线观看| 国产露脸91国语对白| av资源站一区| 亚洲三级一区| 17videosex性欧美| 91精品办公室少妇高潮对白| 下面一进一出好爽视频| 亚洲成人一品| 久久中文字幕在线视频| 韩国av中文字幕| 国产一区激情在线| 欧美二区三区| 亚洲婷婷噜噜| 欧美曰成人黄网| 国产污在线观看| 日韩欧美一区二区三区免费看| 久久久久久久国产精品| 瑟瑟视频在线免费观看| av在线不卡免费看| 青青草原国产免费| 在线天堂新版最新版在线8| 日韩一区二区免费在线电影| 免费看黄色aaaaaa 片| 欧美r级电影| 青青精品视频播放| 成人av无码一区二区三区| 国产日韩欧美综合一区| 91九色丨porny丨国产jk| 国产亚洲人成a在线v网站| 亚洲激情久久久| 日韩欧美中文字幕视频| 日韩高清不卡在线| 麻豆一区区三区四区产品精品蜜桃| 成人在线免费看片| 欧美在线短视频| 人妻精品久久久久中文字幕| 韩国自拍一区| 91视频最新| 欧美一区二区三区| 欧美亚洲综合另类| 国产三级av在线播放| 99国产精品久久久久久久成人热| 亚洲999一在线观看www| 日本免费在线观看| 欧美在线一区二区三区| 少妇大叫太粗太大爽一区二区| 伊人精品视频| 97视频中文字幕| 日韩经典av| 日韩欧美国产系列| 激情五月少妇a| 国内精品写真在线观看| 中文字幕免费在线不卡| 黄色欧美视频| 久久精品国产亚洲| 91av久久久| 中文字幕中文乱码欧美一区二区 | 日韩在线短视频| 国产丝袜一区视频在线观看| 日本熟妇毛耸耸xxxxxx| 成人av在线影院| 777av视频| 欧美人体视频| 国产成人aa精品一区在线播放| 视频一区二区三区在线看免费看| 欧美日韩在线第一页| 国产网站无遮挡| 国产日韩一区二区三区在线| 九色综合日本| 三级成人在线| 最近2019年中文视频免费在线观看| 夜夜爽8888| 亚洲女厕所小便bbb| 亚洲欧美一区二区三区不卡| 一区二区三区在线电影| 91久久偷偷做嫩草影院| 国产社区精品视频| 亚洲日韩欧美视频| 中文字幕黄色av| 综合久久久久久久| 少妇熟女视频一区二区三区| 亚洲美女91| 日韩三级电影免费观看| 欧美一区=区三区| 久精品免费视频| 亚洲AV成人无码一二三区在线| 日本精品一级二级| 欧美精品久久久久久久久46p| 国产精品中文字幕一区二区三区| 2019日韩中文字幕mv| 蜜臀av免费一区二区三区| 国产欧美中文字幕| 好久没做在线观看| 亚洲欧洲自拍偷拍| 国产精品伦一区二区三区| 亚洲一区中文在线| 精品人妻一区二区三区蜜桃视频| 美国三级日本三级久久99| 国产欧美精品aaaaaa片| 美女久久99 | 精品视频在线你懂得| 日本老师69xxx| av在线播放国产| 亚洲欧洲高清在线| 国产成人毛毛毛片| 日韩欧美999| 黄色一级片在线免费观看| wwww国产精品欧美| 国产亚洲色婷婷久久| 久久精品123| 国产 国语对白 露脸| 九一精品国产| 国产精品xxx在线观看www| 国模一区二区| 18久久久久久| 中文在线字幕免费观看| 有码中文亚洲精品| 人人妻人人澡人人爽人人欧美一区| 欧美日韩一级片网站| 午夜影院在线看| 亚洲欧美日韩久久精品| www.av天天| 99久久99久久精品国产片果冻| 天天久久综合网| 日韩av不卡在线观看| 男女激情免费视频| 一区二区在线影院| 亚洲国产一区二区三区在线播| 国产精品一区二区三区美女| 国产男女猛烈无遮挡91| 女生影院久久| 国内自拍欧美激情| 污污视频在线看| 日韩网站免费观看| jyzzz在线观看视频| 亚洲美女av在线| 色噜噜一区二区三区| 日韩免费一区二区| 国产99对白在线播放| 欧美日韩亚洲综合一区| а中文在线天堂| 色悠悠亚洲一区二区| 日韩大片免费在线观看| 一区二区三区四区不卡在线| 免费成人深夜夜行网站| 中文欧美字幕免费| 天天操天天干天天操天天干| 久久只精品国产| aaaaaav| 91麻豆国产精品久久| 香港三日本8a三级少妇三级99| 国产suv精品一区二区6| 色综合久久久无码中文字幕波多| 国产精品中文字幕日韩精品 | 91精品啪在线观看国产爱臀| 亚洲aa中文字幕| 婷婷精品久久久久久久久久不卡| 国产日本欧美视频| 日韩免费大片| 91免费视频网站| 五月亚洲婷婷| 国产精品一区二区三区四区五区 | 99精品久久99久久久久| 亚洲av无码一区二区三区观看 | 欧美日韩国产一二三区| 国产精品久久久久久久久果冻传媒| 国产又黄又粗视频| 国产精品美女久久久久高潮| 日本免费网站视频| 亚洲精选视频免费看| 九九九免费视频| 亚洲成人av免费| 国产乱国产乱老熟| 在线亚洲一区观看| 国产一区二区自拍视频| 91精品国产丝袜白色高跟鞋| av在线亚洲天堂| 精品国产91亚洲一区二区三区婷婷 | 范冰冰一级做a爰片久久毛片| 国产激情999| 成人污版视频| 国产日韩欧美二区| 神马电影久久| 人人妻人人澡人人爽精品欧美一区 | 亚洲天堂男人天堂女人天堂| 9色在线观看| 欧美国产日韩中文字幕在线| 极品av在线| 国产精品视频一区二区高潮| 国产不卡精品| 久久精品日韩精品| 99精品在线| 久久久一本二本三本| 美国一区二区三区在线播放 | 九色91av视频| 精品国产免费人成网站| 成人久久久久久久| 欧美黑人做爰爽爽爽| 亚洲国产激情一区二区三区| 亚洲乱码精品| 丰满少妇被猛烈进入高清播放| 麻豆精品一二三| 国产视频精品视频| 欧美极品美女视频| 免费一级肉体全黄毛片| 欧美性猛交xxxx乱大交极品| 国产乱色精品成人免费视频 | 日本黄色网址大全| 日韩一区中文字幕| 中文字幕国产在线观看| 7777精品伊人久久久大香线蕉经典版下载 | 国产成人精品999在线观看| 永久免费网站视频在线观看| 免费亚洲一区| 欧美xxxxx少妇| 亚洲人成精品久久久久久 | 在线中文字幕视频观看| 日本精品性网站在线观看| 日本在线一区二区三区| 日韩中文不卡| 国产视频一区三区| 少妇欧美激情一区二区三区| 国产欧美日韩亚州综合| 精品视频久久久久| 在线播放91灌醉迷j高跟美女| av女名字大全列表| 欧美激情第三页| 亚洲成人a级片| 午夜精品一区二区三区在线观看| 亚洲精品欧洲| 在线观看你懂的视频| 国产精品三级久久久久三级| 中文字幕在线看人| 亚洲激情视频在线播放| 污片在线免费观看| 亚洲free嫩bbb| 99久久综合| 亚洲va综合va国产va中文| 欧美国产视频在线| 日韩三级一区二区| 国产婷婷色综合av蜜臀av| gogo久久| 国产成人精品一区二区三区福利| 亚洲精品一二三区区别| 久久久久久综合网| 国产精品美女www爽爽爽| 精品人妻一区二区三区潮喷在线 | 精品国产乱码久久久久久夜甘婷婷| 黄色成人在线| 亚洲影视中文字幕| 婷婷综合激情| 欧美成人手机在线视频| 亚洲视频每日更新| 国产精品久久久国产盗摄| www.亚洲一区| aa亚洲一区一区三区| 中文字幕一区综合| 国产一区二区调教| 国内偷拍精品视频| 精品国产91洋老外米糕| 爱福利在线视频| 看高清中日韩色视频| 久久久夜夜夜| 日韩影视一区二区三区| 欧美日韩你懂的| 50度灰在线| 国产精选在线观看91| 国产精品入口66mio| 黄色aaa视频| 欧美影视一区在线| 日本在线天堂| 成人在线资源网址| 国产精品一页| 欧美熟妇激情一区二区三区| 欧美主播一区二区三区美女| 免费在线你懂的| 国产精品v欧美精品∨日韩| 99精品视频免费观看| 日本一级免费视频| 欧美美女一区二区| 欧美精品videosex| 欧美午夜精品理论片a级大开眼界| 香蕉久久国产| 性生交大片免费全黄| 欧美一区二区网站| 蜜桃麻豆av在线| 日韩影院一区| 国产成人自拍在线| 国产无套丰满白嫩对白| 最近中文字幕2019免费| 91成人福利| 欧美国产日韩在线播放| 亚洲丝袜美腿综合| 色播色播色播色播色播在线| 国产欧美精品日韩精品| 狠狠综合久久av一区二区老牛| 日本黄色特级片| 欧美一区二区三区免费视频| 97久久人人超碰caoprom| 日本中文不卡| 国产69精品久久99不卡| 无码无套少妇毛多18pxxxx| 欧美成人激情视频| 中文字幕精品影院| 麻豆精品国产传媒| 欧美四级电影在线观看| 日本h片在线观看| 亚洲国产精品久久久久久女王| 粉嫩一区二区三区在线看| 精品国产www| 欧美在线一级视频| 欧美福利电影在线观看| 性欧美一区二区| 亚洲第一精品电影|