安装好了系统,我先来对它做一个总体介绍。
Raible给AppFuse这个Web应用写了好几种实现方式,有Struts + Spring + Hibernate、Spring + iBATIS、WebWork + Spring + Hibernate、JSF + Spring + Hibernate、Tapestry + Spring + Hibernate 等等。目前在国内最流行的应该就是Struts + Spring + Hibernate了,就以这种框架为例介绍AppFuse吧。
Struts + Spring + Hibernate使用了基于MVC模式的struts的框架,并使用hibernate进行持久层操作,使用Spring对各个组件进行“依赖注射”。通过这种设计模型把应用逻辑,处理过程和显示逻辑分成不同的组件实现。这些组件可以进行交互和重用,具有组件化的优点从而更易于实现对大规模系统的开发和管理。使用AppFuse,你应该对Struts和Hibernate有一定的了解。
下面分别介绍各层的功能:
1. Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。Controller功能核心是一个Servlet类型的对象ActionServlet,它用来接受客户端的请求。ActionServlet包括一组基于配置的ActionMapping对象,每个ActionMapping对象实现了一个请求到一个具体的Action控制器对象之间的映射。所有的Action对象都是从Struts的Action类派生的子类。Action对象封装了具体的控制逻辑,调用Model层的业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象为显示提供一个模型,可以通过定义属性描述客户端表单数据。从它派生子类对象,利用它和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持。通过ActionForm组件对象实现了对View和Model之间交互的支持。同时,控制器会负责处理异常及UI验证
2. Model:代表的是应用的业务逻辑。Model分为两层:持久层和业务层,用这种模式将底层数据访问操作与高层业务逻辑分离开。持久层使用ORM开源框架:Hibernate。 Hibernate为java提供了OR持久化机制和查询服务。业务层框架使用Spring。Spring着手于“依赖注入”这样的概念。Spring把程序中所涉及到包含业务逻辑和Dao的Objects——例如transaction management handler(事物管理控制)、Object Factoris(对象工厂)、service objects(服务组件)——都通过XML来配置联系起来,降低了各个组件的耦合度。
3. View:View是应用的表示面,通过JSP技术实现。Struts提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和ActionForm的映射,完成对用户数据的封装。
Action调用Model层方法时通过读取Spring框架配置文件来创建实例。Spring框架控制主体公共部分,而把用户要使用的部分定义了接口,然后用Spring框架调用这个接口,实现回调。Model层分为两层:业务层(Manager)和持久层(DAO),每一层又分接口和实现两部分。Action调用Manager层的接口,Manager的Implement实现高层业务逻辑并调用DAO接口实现对数据库的操作。这三层之间的调用均通过Spring的“依赖注入”机制实现。
分享到:
相关推荐
### Appfuse 学习笔记 #### 一、Appfuse 简介 Appfuse 是一个开源框架,旨在帮助开发者高效地构建企业级应用。通过提供一套完善的架构模板、最佳实践和技术栈组合,使得开发者能够专注于业务逻辑的实现,而不是...
这个"appfuse-tutorial-struts-1.6.zip"文件是一个基于Struts 1.6的AppFuse教程,用于指导开发者如何构建一个企业级的人员管理系统。Struts是Apache软件基金会下的一个开源框架,专门用于构建基于MVC(Model-View-...
在"appfuse-light-webwork-spring-jdbc-1.8.2.zip"这个压缩包中,我们能看到一个基于Java 8、WebWork、Spring和JDBC的项目实例。 **Java 8** Java 8是Java平台的重大更新,引入了许多新特性,如lambda表达式、函数...
【AppFuse 框架详解】 AppFuse 是一个由 Matt Raible 创建的开源项目,它为初学者提供了... mvn archetype:create -DarchetypeGroupId=org.appfuse -DarchetypeArtifactId=appfuse-basic-spring -DremoteRepositories=...
`mvn archetype:generate -B -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts-archetype -DarchetypeVersion=2.1.0-M2 -DgroupId=cn.xue.app -DartifactId=xueAppFuse` ...
综上所述,AppFuse 不仅是一个强大的开发框架,还是一个全面的学习资源库,可以帮助开发者快速掌握现代 Web 开发所需的各种技能。无论你是初学者还是有经验的开发者,都能从这份文档中获益良多。
替换 `<选择的模板>` 为下载的模板名称,如 `appfuse-basic`,`appfuse-minimal` 等,`<对应版本>` 是你下载的 AppFuse 版本号。 **4. 编译与运行** 进入新创建的项目目录,使用 Maven 编译并运行项目: ``` cd my...
AppFuse Service 3.0.0 是一个开源项目,它提供了一个基础框架,用于快速开发企业级Java应用。这个版本的亮点在于其集成了一系列现代开发工具和最佳实践,旨在提高开发效率和代码质量。AppFuse 的核心理念是简化复杂...
在本篇“appfuse学习笔记(二)新建模块”中,我们将深入探讨AppFuse框架的模块创建过程。AppFuse是一个开源项目,它提供了一个快速开发Web应用的基础结构,旨在简化开发流程并提高代码质量。通过AppFuse,开发者...
主要是自己从网络上搜集的一些关于appfuse1.8.2-2.0.2的一些相关资料,间或有点自己试验的记录,还有点maven和quartz的东东,之前我主要是用1.8.2构建项目,感觉还不错,希望对想学习appfuse的人有些帮助.
在本篇“appfuse学习笔记(三)解决乱码和菜单设置”中,我们将深入探讨在使用AppFuse框架时遇到的编码问题以及如何定制应用程序的菜单。AppFuse是一款开源项目,它提供了一个快速开发Web应用的基础,特别是对于Java...
AppFuse是一个开源项目,它提供了一个快速启动MVC(Model-View-Controller)Web应用程序开发的框架。基于Java,AppFuse集成了Spring、Struts2、Hibernate等流行的技术,极大地简化了开发流程,使开发者能够更专注于...
AppFuse 是一个开源项目,专为加速 J2EE 应用程序开发而设计。...通过本文的学习,读者将能够熟练运用 AppFuse,体验其带来的高效和便捷。同时,结合 Ant 脚本,开发者可以灵活地管理和构建项目,进一步提高开发效率。
appfuse-demos-2.0.2代码生成的基本代码框架。
06年时的appfuse,学习SSH架构的经典入门框架。相对比较老的资料,可以欣赏一下当时的架构,向牛人致敬
### AppFuse2 学习知识点总结 #### 一、AppFuse 概述 ... mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-struts -DremoteRepositories=...