新版本的AppFuse虽然实现的功能没有变,但实现方式的变化还是挺大的。
接下来让我们随着AppFuse的引导,一起学习最新的技术吧。
想要了解AppFuse的基本功能,我觉得最快的方法还是亲自做一做。以前的AppFuse有提供CRUD代码的自动生成功能,新版当然也不例外。
借用AppFuse网站中的例子,建立一个最简单的POJO。
import javax.persistence.Entity;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.GeneratedValue;
import javax.persistence.Column;
import org.apache.commons.lang.builder.EqualsBuilder;
import org.apache.commons.lang.builder.HashCodeBuilder;
import org.apache.commons.lang.builder.ToStringBuilder;
@Entity
public class Person extends BaseObject {
private static final long serialVersionUID = -2267205427831321488L;
private Long id;
private String firstName;
private String lastName;
@Id @GeneratedValue(strategy = GenerationType.AUTO)
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
@Column(name="first_name", length=50)
public String getFirstName() {
return firstName;
}
public void setFirstName(String firstName) {
this.firstName = firstName;
}
@Column(name="last_name", length=50)
public String getLastName() {
return lastName;
}
public void setLastName(String lastName) {
this.lastName = lastName;
}
/**
* @see java.lang.Object#equals(Object)
*/
public boolean equals(Object object) {
if (!(object instanceof Person)) {
return false;
}
Person rhs = (Person) object;
return new EqualsBuilder().append(this.firstName, rhs.firstName)
.append(this.id, rhs.id).append(this.lastName, rhs.lastName)
.isEquals();
}
/**
* @see java.lang.Object#hashCode()
*/
public int hashCode() {
return new HashCodeBuilder(248915313, 1539783955)
.append(this.firstName).append(this.id).append(this.lastName)
.toHashCode();
}
/**
* @see java.lang.Object#toString()
*/
public String toString() {
return new ToStringBuilder(this).append("lastName", this.lastName)
.append("id", this.id).append("firstName", this.firstName)
.toString();
}
}
接下来根据这个POJO生成CRUD代码。
在命令行下运行mvn appfuse:gen -Dentity=Person,这个POJO的CRUD代码即被生成,并自动添加到项目中。
接下来根据这个POJO生成数据表。
在命令行下运行mvn test-compile hibernate3:hbm2ddl。
然后找到\src\test\resources下的hibernate.cfg.xml文件,添加<mapping class="com.mycompany.app.model.Person"/>
最后运行mvn jetty:run-war,可以通过http://localhost:8080看到我们新添加的person了。
在\target\appfuse\generated-sources里有所有Person的自动生成的代码,通过查看这些文件,我们可以了解到AppFuse里实现一张表的CRUD需要多少个文件。熟悉AppFuse1.x的人也可以比较一下两个版本实现方式的区别。
下面就是\target\appfuse\generated-sources里的所有文件,我们来研究一下。
src\test\resources\Person-sample-data.xml 可以配置初始数据的文件,添加到sample-data.xml
src\test\resources\Person-web-tests.xml jsp的单元测试配置文件
src\test\java\com\mycompany\app\webapp\action\PersonActionTest.java Action的单元测试文件
src\main\resources\Person-generic-beans.xml 添加到applicationContext.xml
src\main\resources\PersonManager-bean.xml 无用
src\main\resources\Person-struts.xml 添加到src\main\resources\struts.xml中
src\main\resources\Person-ApplicationResources.properties 资源文件,添加到src\main\resources\ApplicationResources.properties
src\main\resources\com\mycompany\app\model\Person-validation.xml这个在1.x里是自动生成的,现在需要自己去改。
src\main\resources\com\mycompany\app\webapp\action\PersonAction-validation.xml Action的validation
src\main\java\com\mycompany\app\webapp\action\PersonAction.java Ation
src\main\webapp\WEB-INF\Person-struts-bean.xml 可以添加到applicationContext-struts.xml中,也可以不添加,区别就是struts.xml中Action的声明方式有点变化。
src\main\webapp\WEB-INF\Person-menu-config.xml 用于配置菜单项,添加到src\main\webapp\WEB-INF\menu-config.xml 菜单配置文件
src\main\webapp\common\Person-menu.jsp 菜单显示jsp
分享到:
相关推荐
标题“APPFUSE2.0中加入FCKeditor”指的是在APPFUSE 2.0这个开源项目中集成FCKeditor这一富文本编辑器的过程。APPFUSE是一个快速开发框架,它结合了Spring、Hibernate、Struts等流行技术,帮助开发者迅速构建Java ...
综上所述,AppFuse 2.0 RC1文档是一个全面的资源集合,不仅提供了AppFuse的基础使用教程,还深入探讨了高级主题,如安全性、持续集成和多框架集成,是Web开发人员学习和掌握AppFuse不可或缺的指南。
AppFuse 2.0 教程是一个不可多得的学习资源,它不仅提供了快速搭建 Web 应用的工具和方法,还包含了详细的文档和丰富的示例,是 Java 开发者构建 Web 应用的理想选择。通过深入学习 AppFuse,开发者可以大大提高开发...
使用appfuse2 的时候,需要连接mysql数据,数据库建表的sql语言。
本文档旨在为初学者提供一份详细的指南,帮助理解和实践如何从零开始搭建基于Appfuse 2.0的开发环境,并下载其源码进行学习。Appfuse是一款开源的Java Web应用框架,它集成了多种主流技术栈,如Spring、Hibernate、...
AppFuse 是一个基于Java平台的开源项目,旨在加速和简化Web应用程序的开发。它通过集成各种流行框架,如Struts、Spring、Hibernate等,提供了一个项目骨架,使得开发者能够快速搭建新项目的结构。AppFuse分为1.x和...
描述中提到的是使用AppFuse 2.0版本的情况,这可能是指一个基于早期MVC架构的示例项目。在AppFuse 2.0时代,它主要支持Struts或 Tapestry 框架,而非现代的Spring Boot。由于描述中提到“没有jar包”,这可能意味着...
#### 一、Appfuse 简介 Appfuse 是一个开源框架,旨在帮助开发者高效地构建企业级应用。通过提供一套完善的架构模板、最佳实践和技术栈组合,使得开发者能够专注于业务逻辑的实现,而不是基础架构的搭建。这不仅...
此外,AppFuse 2.0 采用了 JDK 1.5,支持 Annotation 和 JSP 2.0,符合 J2EE 1.4 规范,并引入了 JPA(Java Persistence API)的支持,提供了一种标准的方式来处理对象持久化。 AppFuse 2.0 的新特性还包括: 1. **...
AppFuse 是一个由 Matt Raible 创建的开源项目,旨在为...通过研究和使用 AppFuse,开发者不仅可以学习到如何整合这些流行的技术,还能了解到如何利用监听器进行初始化操作以及如何利用Spring进行依赖注入等最佳实践。
**AppFuse 学习笔记(一):安装与部署** AppFuse 是一个开源项目,它提供了一种快速构建企业级 Web 应用程序的方式。它使用了多种流行的技术栈,如 Spring Boot、Hibernate、Thymeleaf 和 Maven,使得开发者可以更...
AppFuse是一个用于启动J2EE项目的工具包,它提供了一种快速而简便的方法来构建基于Java的应用程序。该工具包由Matt Raible创建,他在网络开发领域拥有丰富的经验,并且是多个开源项目的贡献者,包括Roller Weblogger...
本项目是关于利用AppFuse框架构建B2C(Business-to-Consumer)电子商务系统的实践研究,这涉及到一系列的技术和概念。 首先,我们需要理解B2C电子商务的核心特征。B2C模式是指企业直接面向消费者销售产品和服务的...
【MAVEN 搭建APPFUSE】是一个关于使用Maven构建基于AppFuse的应用程序的教程。AppFuse是一个开源项目,旨在简化Web应用程序的开发,它提供了一个基础框架,可以帮助开发者快速启动新项目,整合了Spring、Hibernate、...