AppFuse是一个基于Java的Web应用程序开发框架,提供了一整套功能齐全的工具,能够使开发者通过配置即可快速搭建一个安全可靠的Web应用程序,遵循MVC设计模式、支持多种数据库类型。在这篇文章中,我们将详细介绍AppFuse框架的原理和开发教程。
一、AppFuse框架的原理
AppFuse是一个利用Maven、Spring、Hibernate等开源组件构建的Java Web应用程序开发框架,核心思想是通过集成高质量的开源组件和开发模板,以便在众多的Java Web应用程序开发框架中减少手动配置和部署的时间和精力。框架在Apache 2.0协议下开源。
1. 拉取AppFuse的构建
AppFuse 的项目核心构建工作目前是 Maven,同时也提供了一个以 Ant 为基础的构建产物,都可以通过官方网站的下载页面获取。
2. 部署AppFuse的webapps
使用 Maven 命令进行构建时,已经包含了后台中间层和前端如 JSP、CSS、JavaScript 等代码,直接将目录/file-system/src/main/webapp 目录下的内容初始化到容器中的 webapps 目录即可。
3. 创建AppFuse应用程序
使用 mvn archetype:generate 命令创建应用类型的项目。
生成时指定的应用类型来自 archetype,从而生成了一个程序骨架,可以在该骨架的基础上运行和开发应用程序。
二、AppFuse框架的开发教程
下面我们将介绍使用AppFuse框架进行开发的步骤和流程。
1. 创建AppFuse项目
首先,在命令行窗口中使用以下命令创建一个新的AppFuse项目。
mvn archetype:generate -B \
-DarchetypeGroupId=org.appfuse.archetypes \
-DarchetypeArtifactId=appfuse-simple-spring-archetype \
-DarchetypeVersion=3.5.0 \
-DgroupId=com.example \
-DartifactId=myapp \
-Dversion=1.0-SNAPSHOT \
-Dpackage=com.example.myapp
执行这个命令会创建一个名为myapp的Maven项目,使用的是appfuse-simple-spring-archetype这个原型,通过这个原型来生成一个标准的AppFuse项目。
2. 编码和测试
创建一个简单的页面
在myapp/src/main/webapp/WEB-INF/jsp下创建一个名为“hello.jsp”的文件,内容如下:
<% page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Hello, World!
修改内容后运行myapp,访问http:// localhost:8080 /myapp/hello.jsp,应该可以看到一个包含“Hello, World!”的页面。
3. 创建登录授权页面
在myapp/src/main/webapp/WEB-INF/jsp下创建一个名为“login.jsp”的文件,添加以下内容:
<% page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
Login
该页面为用户提供了登录信息提交表单,将数据提交到j_security_check servlet。
4. 开启用户身份验证
打开myapp/src/main/resources/applicationContext-security.xml文件,取消以下行的注释:
5. 添加新用户和角色
在myapp/src/main/resources下创建一个名为“users.properties”的文件,并配置以下内容,添加一个名为“admin”的用户,密码为“password”,具有“admin”角色:
# AppFuse User Roles
admin=ROLE_ADMIN
user=ROLE_USER
# AppFuse User Passwords
admin=password
user=password
6. 配置安全约束
打开myapp/src/main/webapp/WEB-INF/web.xml文件,添加以下内容:
FORM
现在可以通过访问http:// localhost:8080 /myapp to 登录到myapp,输入“admin”和“password”,然后单击“login”按钮。
至此,我们完成了一个简单的AppFues应用程序的开发。它可以让Web应用程序开发人员快速创建一个安全可靠的项目和页面,极大地提高了项目开发的效率和质量。