`
javafenger
  • 浏览: 243069 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

使用 AppFuse 的七个理由之一

阅读更多

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 应用程序的概念设计:

典型的 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

 在创建一个新项目之后,我们就得到了一个类似于图 2 所示的目录结构。Eclipse 和 Intellij IDEA 项目文件都是作为这个过程的一部分创建的。

这个目录结构与 Sun 为 Java 2 Platform Enterprise Edition(J2EE)Web 应用程序推荐的目录结构非常类似。在 2.0 版本的 AppFuse 中,这个结构会变化成适合 Apache Maven 项目的标准目录结构(有关这两个目录介绍的内容,请参看 参考资料 中的链接)。AppFuse 还会从 Ant 迁移到 Maven 2 上,从而获得相关下载的能力和对生成 IDE 项目文件的支持。目前基于 Ant 的系统要求提交者维护项目文件,而 Maven 2 可以通过简单地使用项目的 pom.xml 文件生成 IDEA、Eclipse 和 NetBeans 项目文件。(这个文件位于您项目的根目录中,是使用 Maven 构建应用程序所需要的主要组件)。它与利用 Ant 所使用的 build.xml 文件非常类似。)

现在我们对 AppFuse 是什么已经有一点概念了,在本文剩下的部分中,我们将介绍使用 AppFuse 的 7 点理由。即使您选择不使用 AppFuse 来开始自己的项目,也会看到 AppFuse 可以为您提供很多样板代码,这些代码可以在基于 Java 语言的 Web 应用程序中使用。由于它是基于 Apache 许可证的,因此非常欢迎您在自己的应用程序中重用这些代码。



分享到:
评论

相关推荐

    appfuse

    使用appfuse2.0,下载过来的实例源码,没有jar包

    使用 AppFuse 快速构建 java

    使用 AppFuse 快速构建 java 使用 AppFuse 快速构建 java

    可直接使用的appfuse项目

    AppFuse是一个集成了众多当前最流行开源框架与工具(包括Hibernate、ibatis、Struts、Spring、DBUnit、Maven、Log4J、Struts Menu、Xdoclet、SiteMesh、OSCache、JUnit、JSTL等(现在还有lucene的,无敌了))于一身的...

    使用AppFuse快速构建J2EE应用

    关于AppFuse的特性、架构以及为什么要使用AppFuse,AppFuse的创始人MattRaible在《使用AppFuse的七个理由》一文中已经做了很详尽的阐述,这里就不再赘言。本文将着力于实践,即如何运用AppFuse开发J2EE应用。使用

    AppFuse

    本文以一个 J2EE 开发者的角度,借助一个简单的应用示例,在融合了个人经验的基础上介绍了如何用 AppFuse 一步步地构建 J2EE 项目。通过阅读本文,读者不仅能够学会用 AppFuse 进行开发,而且能够充分体会到 AppFuse...

    AppFuse入门文档(AppFuse与SpringMVC+mybatis整合)

    本文档详细描述了AppFuse与SpringMVC+mybatis整合的过程,只要你懂一些基本的eclipse操作和基本的maven命令,就可以在三分钟之内迅速的搭建出一个AppFuse的架构

    appfuse使用手册

    代码自动生成工具appfuse的中文使用手册

    APPFUSE工具研究.doc

    Appfuse是一个开源的工程应用,它集成了现在最流行的开发框架到该应用中,使用Maven可以很方便的开发和部署因为。也可以集成到现在流行的开源开发工具如eclipse,idea等。现在让我们简单的看看APPFUSE开发应用的简单...

    appfuse新手上路

    新手使用appfuse2.0,启动步骤和配置过程

    玩转appfuse--使用appfuse建设MVC网站

    使用appfuse进行网站开发,appfuse是关于Spring,Struts2,MVC3,Hibernate等技术的案例,可以加快建设网站。 1.文档说明。 2.可以执行的案例,亲测无误。

    使用appfuse2建立项目原型骨架的步骤

    使用appfuse2建立项目原型骨架的步骤 appfuse2 项目原型 骨架

    appfuse学习笔记(一)安装部署

    NULL 博文链接:https://savagegarden.iteye.com/blog/427169

    一个appfuse的应用

    一个appfuse的小应用,一些jar包没有提交,可以到官方网站上自行下载

    appfuse 学习笔记

    Appfuse 一个开放源码的项目和应用程序,帮助我们快速而高效的地开发。

    appfuse1.4-architecture

    06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬

    Appfuse教程Appfuse开发.pdf

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持。  AppFuse是一个集成了...

    使用appfuse构建环境

    创建数据库、构建 dao 和 serive 类、加载样本数据、创建 war 文件并部署到 tomcat,等等

    AppFuse项目研究

    Appfuse是由Matt Raible开发的一个指导性的入门级J2EE框架,它对如何集成流行的Spring、Hibernate、iBatis、struts、Xdoclet、junit 等基础框架给出了示范。提供了对Taperstry和JSF的支持

Global site tag (gtag.js) - Google Analytics