亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

新手入門:使用 AppFuse 的七個理由

2019-11-18 13:40:15
字體:
來源:轉載
供稿:網友

2006 年 8 月 31 日

開始學習在 java™ 平臺上使用諸如 SPRing、Hibernate 或 MySQL 之類的開放源碼工具時可能非常困難。再加上 Ant 或 Maven,以及與 DWR 一起的小 Ajax,還有 Web 框架 —— 即 JSF,我們必須睜大眼睛盯著如何配置應用程序。AppFuse 減少了集成開放源碼項目的痛苦。它可以把測試變成一等公民,讓我們可以從數據庫表生成整個 UI,并使用 XFire 來支持 Web 服務。另外,AppFuse 的社區也非常健全,這是不同 Web 框架用戶可以一起融洽相處的地方之一。

     AppFuse 是一個開放源碼的項目和應用程序,它使用了在 Java 平臺上構建的開放源碼工具來幫助我們快速而高效地開發 Web 應用程序。我最初開發它是為了減少在為客戶構建新 Web 應用程序時所花費的那些不必要的時間。從核心上來說,AppFuse 是一個項目骨架,類似于通過向導創建新 Web 項目時 IDE 所創建的東西。當我們使用 AppFuse 創建一個項目時,它會提示我們將使用開放源碼框架,然后才創建項目。它使用 Ant 來驅動測試、代碼生成、編譯和部署。它提供了目錄和包結構,以及開發基于 Java 語言的 Web 應用程序所需要的庫。

    與大部分 “new project” 向導不同,AppFuse 創建的項目從最開始就包含很多類和文件。這些文件用來實現特性,不過它們同時也會在您開發應用程序時被用作示例。通過使用 AppFuse 啟動新項目,我們通常可以減少一到兩周的開發時間。我們不用擔心如何將開放源碼框架配置在一起,因為這都已經完成了。我們的項目都已提前配置來與數據庫進行交互,它會部署到應用服務器上,并對用戶進行認證。我們不必實現安全特性,因為這都早已集成了。

    當我最初開發 AppFuse 時,它只支持 Struts 和 Hibernate。經過幾年的努力,我發現了比 Struts 更好的 Web 框架,因此我還添加了為這些 Web 框架使用的選項。現在,AppFuse 可以支持 Hibernate 或 iBATIS 作為持久性框架。對于 Web 框架來說,我們可以使用 JavaServer Faces(JSF)、Spring MVC、Struts、Tapestry 或 WebWork。

AppFuse 提供了很多應用程序需要的一些特性,包括:

  • 認證和授權
  • 用戶治理
  • Remember Me(這會保存您的登錄信息,這樣就不用每次都再進行登錄了)
  • 密碼提醒
  • 登記和注冊
  • SSL 轉換
  • E-mail
  • URL 重寫
  • 皮膚
  • 頁面修飾
  • 模板化布局
  • 文件上載

     這種 “開箱即用” 的功能是 AppFuse 與其他 CRUD 代 框架的區別之一(CRUD 取自創建、檢索、更新刪除 幾個操作的英文首字母),包括 Ruby on Rails、Trails 和 Grails。上面提到的這些框架,以及 AppFuse,都讓我們可以從數據庫表或現有的模型對象中生成主頁/細節頁。

圖 1 闡述了一個典型 AppFuse 應用程序的概念設計:


圖 1. 典型的 AppFuse 應用程序
新手入門:使用 AppFuse 的七個理由(圖一)

     清單 1 給出了我們在創建 devworks 項目時所使用的命令行交互操作,同時還給出了所生成的結果。這個項目使用了 WebWork 作為自己的 Web 框架(請參考下面 參考資料 一節給出的鏈接)。


清單 1. 使用 AppFuse 創建新項目
alotta:~/dev/appfuse mraible$ ant newBuildfile: build.xmlclean:     [echo] Cleaning build and distribution Directoriesinit:new:     [echo]      [echo] +-------------------------------------------------------------+     [echo]     -- Welcome to the AppFuse New application Wizard! --          [echo]                                                                   [echo]  To create a new application, please answer the following         [echo]  questions.                                                       [echo] +-------------------------------------------------------------+    [input] What would you like to name your application [myapp]?devworks    [input] What would you like to name your database [mydb]?devworks    [input] What package name would you like to use [org.appfuse]?com.ibm    [input] What web framework would you like to use [webwork,tapestry,spring,jsf,struts]?webwork     [echo] Creating new application named 'devworks'...     [copy] Copying 359 files to /Users/mraible/Work/devworks     [copy] Copying 181 files to /Users/mraible/Work/devworks/extras     [copy] Copying 1 file to /Users/mraible/Work/devworks     [copy] Copying 1 file to /Users/mraible/Work/devworksinstall:     [echo] Copying WebWork JARs to ../../lib     [copy] Copying 6 files to /Users/mraible/Work/devworks/lib     [echo] Adding WebWork entries to ../../lib.properties     [echo] Adding WebWork classpath entries     [echo] Removing Struts-specific JARs   [delete] Deleting directory /Users/mraible/Work/devworks/lib/struts-1.2.9   [delete] Deleting directory /Users/mraible/Work/devworks/lib/strutstest-2.1.3     [echo] Deleting struts_form.xdt for XDoclet   [delete] Deleting directory /Users/mraible/Work/devworks/metadata/templates     [echo] Deleting Struts merge-files in metadata/web   [delete] Deleting 7 files from /Users/mraible/Work/devworks/metadata/web     [echo] Deleting unused Tag Libraries and Utilities   [delete] Deleting 2 files from /Users/mraible/Work/devworks/src/web/org/appfuse/webapp     [echo] Modifying appgen for WebWork     [copy] Copying 12 files to /Users/mraible/Work/devworks/extras/appgen     [echo] Replacing source and test files   [delete] Deleting directory /Users/mraible/Work/devworks/src/web/org/appfuse/webapp/form   [delete] Deleting directory /Users/mraible/Work/devworks/src/web/org/appfuse/webapp/action     [copy] Copying 13 files to /Users/mraible/Work/devworks/src   [delete] Deleting directory /Users/mraible/Work/devworks/test/web/org/appfuse/webapp/form   [delete] Deleting directory /Users/mraible/Work/devworks/test/web/org/appfuse/webapp/action     [copy] Copying 5 files to /Users/mraible/Work/devworks/test     [echo] Replacing web files (images, scripts, jsps, etc.)   [delete] Deleting 1 files from /Users/mraible/Work/devworks/web/scripts     [copy] Copying 34 files to /Users/mraible/Work/devworks/web   [delete] Deleting: /Users/mraible/Work/devworks/web/WEB-INF/validator-rules-custom.xml     [echo] Modifying Eclipse .classpath file     [echo] Refactoring build.xml     [echo] ----------------------------------------------     [echo] NOTE: It's recommended you delete extras/webwork as you shouldn't need it anymore.     [echo] ----------------------------------------------     [echo] Repackaging info written to rename.log     [echo]      [echo] +-------------------------------------------------------------+     [echo]            -- Application created sUCcessfully! --                [echo]                                                                   [echo]  Now you should be able to cd to your application and run:        [echo]  > ant setup test-all                                             [echo] +-------------------------------------------------------------+BUILD SUCCESSFULTotal time: 15 seconds

新手入門:使用 AppFuse 的七個理由(圖二)為什么使用 WebWork?
Struts 社區最近在熱情地擁抱 WebWork,這種結合導致為 Java 平臺提供了一個非常優秀的新 Web 框架:Struts 2。當然,Spring MVC 是一個非常優秀的基于請求的框架,但是它不能像 Struts 2 一樣支持 JSF?;趦热莸目蚣埽ɡ?JSF 和 Tapestry)也都很好,但是我發現 WebWork 更為直觀,更輕易使用(更多有關 Structs 2 和 JSF 的內容請參看 參考資料)。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久久国色av免费观看性色| 一本色道久久综合狠狠躁篇的优点| 国产精品白嫩美女在线观看| 综合久久五月天| 欧美日韩国产在线播放| 国产午夜精品视频| 国产成人自拍视频在线观看| 日韩免费在线看| 色综合久综合久久综合久鬼88| 97视频免费在线看| 中文字幕日韩电影| 亚洲激情视频网| 久久精品国产欧美激情| 亚洲国产精品成人va在线观看| 久久99精品国产99久久6尤物| 色伦专区97中文字幕| 亚洲精品在线91| 久久伊人色综合| 国产精品入口福利| 国产成人综合精品| 久久91超碰青草是什么| 欧美激情国产精品| 欧美资源在线观看| 亚洲精品永久免费精品| 在线播放国产一区中文字幕剧情欧美| 91禁外国网站| 欧美自拍视频在线| 欧美性视频网站| 国产精品第100页| 亚洲图片在区色| 欧美人在线视频| 国产成人综合久久| 日韩福利在线播放| 欧美另类xxx| 亚洲电影天堂av| 一本色道久久综合狠狠躁篇怎么玩| 成人国内精品久久久久一区| 热99精品只有里视频精品| 国产精品777| 亚洲免费电影一区| 久久综合久久八八| 亚洲精品网站在线播放gif| 日韩精品在线视频美女| 欧美日韩一区二区三区在线免费观看| 欧美性猛交xxxxx免费看| 欧美精品激情在线观看| 日韩精品在线观看视频| 欧美精品少妇videofree| 精品中文字幕在线观看| 国产免费成人av| 欧美日韩电影在线观看| 国产精品一区二区三区久久| 国内精品免费午夜毛片| 亚洲成人1234| 久久久久久久网站| 91久久久久久久久久久| 欧美在线视频一区| 久久久久一本一区二区青青蜜月| 91黑丝高跟在线| 亚洲国产精品久久91精品| 日韩欧美在线视频免费观看| 亚洲综合第一页| 久久久国产成人精品| 久久精品国产亚洲一区二区| 亚洲第一区在线| 欧美成在线观看| 国产色婷婷国产综合在线理论片a| 97成人超碰免| 69国产精品成人在线播放| 亚洲成人三级在线| 亚洲免费高清视频| 欧美综合在线观看| 色吧影院999| 国产精品自拍小视频| 日韩一区二区在线视频| 亚洲天天在线日亚洲洲精| 国产精品露脸av在线| 亚洲精品国产精品国自产观看浪潮| 国产精品777| 国产成人拍精品视频午夜网站| 国产视频精品自拍| 亚洲国产成人91精品| 日韩福利在线播放| 国产精品ⅴa在线观看h| 色偷偷9999www| 亚洲老板91色精品久久| 伊人久久精品视频| 69影院欧美专区视频| 日韩欧美在线视频观看| 日韩中文字幕在线精品| 亚洲国产三级网| 欧美男插女视频| 俺去了亚洲欧美日韩| 国产成人激情小视频| 91精品国产九九九久久久亚洲| 欧美日韩爱爱视频| 97精品一区二区三区| 欧美猛交ⅹxxx乱大交视频| 精品亚洲一区二区三区在线观看| 国内免费久久久久久久久久久| 欧美成人精品在线观看| 一区二区三欧美| 亚洲男人av在线| 亚洲第一黄色网| 国产丝袜一区视频在线观看| 欧美日韩久久久久| 国产成人黄色av| 国产一区在线播放| 国产在线播放91| 亚洲视频777| 国产美女精品视频| 亚洲精品电影久久久| 亚洲精品v天堂中文字幕| 日本精品一区二区三区在线播放视频| 日韩成人av网| 国产精品美乳在线观看| 亚洲福利精品在线| 欧美激情精品久久久久久蜜臀| 欧美成人全部免费| 国产精品久久久久av免费| 最近更新的2019中文字幕| 国产91ⅴ在线精品免费观看| 久久久久久久久久久网站| 亚洲成人av在线| 欧美日韩第一页| 日韩中文字幕在线免费观看| 深夜福利国产精品| 国产美女扒开尿口久久久| 国产日韩在线亚洲字幕中文| 欧美精品一二区| 欧美亚洲日本黄色| 欧美黑人性视频| 日韩欧中文字幕| 国产精品va在线| 欧美日韩国产激情| 激情久久av一区av二区av三区| 日韩精品在线观看视频| 国产亚洲视频在线| 91国内产香蕉| 亚洲高清久久网| 欧美日韩国产一区中文午夜| 亚洲最新av在线| 成人在线视频福利| 亚洲性猛交xxxxwww| 中文字幕精品—区二区| 欧美激情视频三区| 疯狂蹂躏欧美一区二区精品| 久久伊人精品一区二区三区| 国产精品久久久久久久久久久新郎| 国产精品久久久久久一区二区| 欧美日韩国产激情| 久久在线视频在线| 97精品在线视频| 国语自产偷拍精品视频偷| 亚洲xxxx视频| 亚洲精品一区二区久| 欧美黄色片视频| 日韩免费在线电影| 国产91精品久久久久久| 午夜精品国产精品大乳美女| 人人做人人澡人人爽欧美| 人体精品一二三区| 欧美疯狂xxxx大交乱88av| 亚洲最大福利视频网|