阅读更多
AppFuse是一个为"一键完成"式的网络应用开发而设计的应用程序。, 解冻并执行 ant new可立即启动运行Tomcat/MySQL应用。使用Ant, XDoclet, Spring, Hibernate (or iBATIS), JUnit, StrutsTestCase, Canoo's WebTest, Struts Menu, Display Tag Library, OSCache, JSTL and Struts (or Spring MVC). 从2004年2月启用Spring框架极大加强了AppFuse. 他被使用在从Hibernate/iBATIS支持,声明式Trasaction管理, 相关性绑定和分层的解耦合。这个清晰简介的框架极大减小了AppFuse的复杂性,并且减少了许多代码行。简而言之,对于J2EE - 它是最好的切片面包(sliced bread)。想了解更多的关于AppFuse的信息请参阅此处。
各种各样的机能包括认证(使用Acegi Security), 记忆(Remember Me), 自助注册(Self Registration), 密码提示(Password Hint)和GZip压缩. The fuse to start your apps.
这个框架的优点是:如果熟悉了开发流程,可以大幅度的提高开发速度,如果业务不是很复杂,使用AppGen可以生成60%左右的代码,而且程序可维护性好,因为作者使用了多个设计模式对各个层面进行了封装,所以不同的模块代码风格出奇的一致,有利于开发人员快速上手,也有利于接收其他开发人员遗留的代码。
(以下内容)引用IBM开发者网站
使用 AppFuse 的七个理由
理由 1:测试
测试通常都被看作是一件只会延长项目开发时间的事情。实际上,如果我们使用测试优先的方法在编写代码之前就开始撰写测试用例,我相信我们可以发现这实际上会加速 开发速度。另外,测试优先也可以使维护和重用更加 容易。如果我们不编写代码来测试自己的代码,那么就需要手工对应用程序进行测试 —— 这通常效率都不高。自动化才是关键。
理由 2:集成
很多开放源码库都已经预先集成到 AppFuse 中了。它们可以分为以下几类:
编译、报告和代码生成:Ant、Ant Contrib Tasks、Checkstyle、EMMA、Java2Html、PMD 和 Rename Packages
测试框架:DbUnit、Dumbster、jMock、JUnit 和 Canoo WebTest
数据库驱动程序:MySQL 和 PostgreSQL
持久性框架:Hibernate 和 iBATIS
IoC 框架:Spring
Web 框架:JSF、Spring MVC、Struts、Tapestry 和 WebWork
Web 服务:XFire
Web 工具:Clickstream、Display Tag、DWR、JSTL、SiteMesh、Struts Menu 和 URL Rewrite Filter
Security:Acegi Security
JavaScript 和 CSS:Scriptaculous、Prototype 和 Mike Stenhouse 的 CSS Framework
除了这些库之外,AppFuse 还使用 Log4j 来记录日志,使用 Velocity 来构建 e-mail 和菜单模板
(ant test-all -Dspring.version=2.0 之类的命令来测试LIB包的新版本)
AppFuse 并不会将我们限定到任何特定的 API 上。它只是简单地对可用的最佳开放源码解决方案重新进行打包和预先集成。AppFuse 中的代码可以处理这种集成,并实现了 AppFuse 的基本安全性和可用性特性。
理由 3:自动化
Ant 使得简化了从编译到构建再到部署的自动化过程。Ant 是 AppFuse 中的一等公民,这主要是因为我发现在命令行中执行操作比从 IDE 中更加简单。我们可以使用 Ant 实现编译、测试、部署和执行任何代码生成的任务。
理由 4:安全特性和可扩展性
Acegi Security 是 J2EE 安全模型中曾经出现过的最好模型。它让我们可以实现很多有用的特性,这些特性在 Servlet API 的安全模型中都不存在:认证、授权、角色保护方法、Remember Me、密码加密、SSL 切换、用户切换和注销。它让我们还可以将用户证书存储到 XML 文件、数据库、LDAP 或单点登录系统(例如 Yale 的 Central Authentication Service (CAS) 或者 SiteMinder)中。
Spring IoC 容器和 Acegi Security 所提供的简单开发、容易测试的代码和松耦合特性的组合是 AppFuse 是这么好的一种开发平台的主要原因。
理由 5:使用 AppGen 生成代码
有些人会将代码生成称为代码气味的散播(code smell)。
AppFuse 中提供了一个基于 Ant 和 XDoclet 的代码生成工具,名叫 AppGen。默认情况下,常见的 DAO 和管理器都可以允许我们对任何普通老式 Java 对象(POJO)进行 CRUD 操作,但是在 Web 层上这样做有些困难。AppGen 有几个特性可以用来执行以下任务:
(使用 Middlegen 和 Hibernate 工具)从数据库表中生成 POJO
从 POJO 生成 UI
为 DAO、管理器、操作/控制器和 UI 生成测试
理由 6:文档
我们可以找到 AppFuse 各个风味的教程,并且它们都以 6 种不同的语言给出了:中文、德语、英语、韩语、葡萄牙语和西班牙语。使用风味(flavor) 一词,我的意思是不同框架的组合,例如 Spring MVC 加上 iBATIS、Spring MVC 加上 Hibernate 或 JSF 加上 Hibernate。使用这 5 种 Web 框架和两种持久框架,可以有好几种组合