SpringRoo是一个开源软件工具,它使用约定优先于配置的概念,以一种驱动的命令行方式促进基于Java的企业软件应用程序的生成。我们介绍了一组教程,可以帮助您创建企业应用程序。将软件放入本地目录并解压缩。为了澄清起见,我们将其解压缩到D: SpringRoospring-roo-1.2.5.发布.
https://dist.springsource.com/release/TOOLS/update/e4.3/
into your 与地址输入。- 检查两个核心/SpringIDE以及扩展/SpringIDE.
- 单击Next和finish,等待安装过程完成。
- 确保重新启动了EclipseIDE。如果您已经成功地安装了springroo,那么您将获得如下所示的欢迎屏幕。
- 在Project Explorer中,创建一个新项目并选择Spring Roo项目.
- 单击“下一步”并键入Primefaces SpringRoo Hibernate示例项目名称。说出你的顶级包名称确保你的项目类型是标准的。
- 点击配置Roo安装并添加下载的springroo库。
- 确保您正在选择战争包装方式。单击“下一步”并完成。SpringRoo将使用您提供的信息开始构建您的项目。
- 一旦创建了SpringRoo项目,您必须注意到springrooshell命令–;Plugin Shell–;被打开了。如果您在启动和准备时遇到了一些障碍,只需重新启动eclipse并再次激活springrooshell,方法是单击为项目打开rooshell.
- 现在,您已经准备好开始构建您的项目了。
数据库视图
SpringRoo提供了一个已知的范例,可以让您的JPA实体一目了然。可以对数据库的表进行反向工程,以消除执行其他命令的需要。因此,让我们看看我们真正想要实现的业务表是什么。
一般来说,我们有两个表:Employee和Phone,它们在一对多关联类型中关联。Phone表包含一个外键引用employeeId字段。以下是所需的SQL创建脚本。
EmployeeTable.sql
CREATE TABLE `employee` (
`EMP_ID` int(11) NOT NULL AUTO_INCREMENT,
`EMP_NAME` varchar(45) DEFAULT NULL,
`EMP_HIRE_DATE` varchar(30) DEFAULT NULL,
`EMP_SALARY` decimal(11,4) DEFAULT NULL,
PRIMARY KEY (`EMP_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8;
PhoneTable.sql
CREATE TABLE `phone` (
`PH_ID` int(11) NOT NULL AUTO_INCREMENT,
`PH_NO` varchar(30) DEFAULT NULL,
`EMP_ID` int(11) DEFAULT NULL,
PRIMARY KEY (`PH_ID`),
KEY `PH_EMP_ID_idx` (`EMP_ID`),
CONSTRAINT `PH_EMP_ID` FOREIGN KEY (`EMP_ID`) REFERENCES `employee` (`EMP_ID`) ON DELETE NO ACTION ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
开发SpringRoo应用程序
使用SpringRoo软件开发企业应用程序确实包含对springrooshell执行多个命令。遵循创建所需应用程序的明确步骤。
- 安装程序通过执行
persistence setup --database MYSQL --provider HIBERNATE --hostName localhost --userName root --password root --databaseName journaldev --persistenceUnit hibernate.jpa
- 安装MySQL驱动程序,这将有助于SpringRoo软件在开始逆向工程时加载所需的驱动程序。我们有一个MySQL驱动程序D: mysql-connector-java-5.1.18-垃圾桶. 执行
osgi install --url file:D:mysql-connector-java-5.1.18-bin.jar
would be fair enough. In case you’ve missed out executing this instruction you will get JDBC驱动程序不适用于&8216;com.mysql.jdbc.驱动程序’;在反向工程阶段连接MySQL数据库时会发出消息。 - 创建JPA实体,SpringRoo为您提供了一种创建实体的简单方法。通过执行
database reverse engineer --schema journaldev --package ~.jpa.data --disableVersionFields --activeRecord true --disableGeneratedIdentifiers
SpringRoo will scan your database and creating the entities by reversing defined Tables there.
- createprimefacesweblayer,SpringRoo提供的选项之一是使用JSF实现创建表示层。执行
web jsf setup --implementation ORACLE_MOJARRA --library PRIMEFACES --theme BLUESKY
will create all required files for your presentation tier including of required forms like: Employee Registration, Phone Registration, Manage Employees and Manage Phones.
- 创建所有的web工具,包括实用程序bean、必需的托管bean、转换器、消息等
web jsf all --package ~.web
will help you create all of these stuffs.
- 为避免标识符生成异常,请打开雇员_实体.aj以及电话_实体.aj使用Eclipse CTRL+SHIFT+R,如下所示:
- 添加@创造价值(战略=GenerationType.自动)对员工和电话标识符的注解。
Employee_Roo_Jpa_Entity.aj
// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
// You may push code into the target .java compilation unit if you wish to edit any member(s).
package com.journaldev.jpa.data;
import com.journaldev.jpa.data.Employee;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
privileged aspect Employee_Roo_Jpa_Entity {
declare @type: Employee: @Entity;
declare @type: Employee: @Table(name = "employee");
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "EMP_ID")
private Integer Employee.empId;
public Integer Employee.getEmpId() {
return this.empId;
}
public void Employee.setEmpId(Integer id) {
this.empId = id;
}
}
Phone_Roo_Jpa_Entity.aj
// WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
// You may push code into the target .java compilation unit if you wish to edit any member(s).
package com.journaldev.jpa.data;
import com.journaldev.jpa.data.Phone;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
privileged aspect Phone_Roo_Jpa_Entity {
declare @type: Phone: @Entity;
declare @type: Phone: @Table(name = "phone");
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "PH_ID")
private Integer Phone.phId;
public Integer Phone.getPhId() {
return this.phId;
}
public void Phone.setPhId(Integer id) {
this.phId = id;
}
}
- 执行mvn清洁包装为了生成SpringRoo所需的一些Java文件,AspectJ会生成并生成下一个部署任务所需的WAR。
- 将生成的WAR文件复制到apachetomcat home/webapp文件夹中。