Primefaces,Hibernate和SpringRoo集成

时间:2020-02-23 14:41:38  来源:igfitidea点击:

SpringRoo是一种开放源代码软件工具,它使用基于约定的约定概念来促进以驱动命令行方式生成基于Java的企业软件应用程序。
我们介绍了一系列教程,可帮助您逐步创建企业应用程序。
Primefaces,Spring Framework,Hibernate,EclipseLink和其他类型的数据存储有选择地组合在一起,以帮助您创建企业应用程序。

本教程的不同之处在于,您不会开发以前开发的任何层。
一切都将分配给SpringRoo,您将学习所需的集成和命令,这些信息和命令可帮助您安装和运行第一个应用程序。

最终项目结构

必备工具

  • SpringRoo 1.2.5
  • JDK 1.6以上
  • Apache Tomcat 7
  • Maven 2+
  • Eclipse开普勒4.3
  • MySQL 5.x

Eclipse Spring Roo集成

要将您的Eclipse IDE与SpringRoo软件集成,您必须仔细遵循以下步骤:

  • 将SpringRoo软件下载到您的本地目录并解压缩。
    为了澄清起见,我们将其解压缩到D:\SpringRoo \ spring-roo-1.2.5.RELEASE。

  • 将SpringRoo插件安装到Eclipse IDE中。
    这可以通过进入帮助-安装新软件并在地址输入中输入给定的https://dist.springsource.com/release/TOOLS/update/e4.3/来完成。

  • 检查Core/Spring IDE和扩展/Spring IDE。

  • 单击"下一步",然后完成并等待安装过程完成。

  • 确保您重新启动了Eclipse IDE。
    如果您已经成功安装了Spring Roo,那么您将获得如下所示的欢迎屏幕。

  • 在Project Explorer中,创建一个新项目,然后选择Spring Roo Project。

  • 单击下一步,然后在项目名称中输入Primefaces-SpringRoo-Hibernate-Sample。
    命名您的顶级软件包名称,并确保您的项目类型是标准的。

  • 点击配置Roo安装并添加下载的Spring Roo库。

  • 确保选择一种WAR包装方式。
    单击下一步,然后单击完成。
    SpringRoo将使用您提供的信息开始构建您的项目。

  • 创建SpringRoo项目后,您必须注意,已打开SpringRoo Shell命令–插件shell–。
    如果您在启动和准备过程中遇到了一些障碍,只需重新启动Eclipse并通过单击Open Roo Shell for projects再次激活SpringRoo Shell。

  • 现在,您准备开始构建项目。

数据库视图

SpringRoo促进了一种已知的范例,使您的JPA实体一目了然地可以使用。
您可以对数据库的表进行反向工程,以消除执行其他命令的需要。
因此,让我们看看我们真正想要实现的业务表是什么。

总的来说,我们有两个表。
以一对多关联类型关联的Employee和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软件开发企业应用程序确实包含对SpringRoo Shell执行多个命令。
按照明确的步骤创建所需的应用程序。

  • 安装程序通过执行持久性设置-数据库MYSQL-提供者HIBERNATE --hostName本地主机-用户名root-密码根--databaseName theitroad --persistenceUnit hibernate.jpa来使用持久性框架。

  • 安装MySQL驱动程序,这将帮助您的SpringRoo软件在逆向工程开始时加载所需的驱动程序。
    我们在D:\mysql-connector-java-5.1.18-bin.jar上有一个MySQL驱动程序。
    执行" osgi install --url文件:\ D:\mysql-connector-java-5.1.18-bin.jar"就足够了。
    如果您错过执行此指令,则在连接MySQL数据库进行反向工程阶段时," com.mysql.jdbc.Driver"消息将不提供JDBC驱动程序。

  • 创建JPA实体,SpringRoo为您提供了一种创建实体的简便方法。
    通过执行数据库逆向工程师--schema theitroad-包~.jpa.data --disableVersionFields --activeRecord true --disableGeneratedIdentifiers` SpringRoo将扫描数据库并通过反转定义的表来创建实体。

  • 创建Primefaces Web层,SpringRoo提供的选项之一是使用JSF实现创建表示层。
    执行Web jsf设置-实现ORACLE_MOJARRA-库PRIMEFACES-主题BLUESKY将为您的演示文稿层创建所有必需的文件,包括所需形式,例如:员工注册,电话注册,管理员工和管理电话。

  • 创建所有Web东西,包括实用程序Bean,必需的托管Bean,转换器,消息等。
    执行web jsf all --package~.web`将帮助您创建所有这些东西。

  • 为避免标识符生成异常,请使用Eclipse CTRL + SHIFT + R如下打开Employee_Roo_Jpa_Entity.aj和Phone_Roo_Jpa_Entity.aj:

  • 在员工标识符和电话标识符上添加@GeneratedValue(strategy = GenerationType.Auto)批注。

Employee_Roo_Jpa_Entity.aj

//WARNING: DO NOT EDIT THIS FILE. THIS FILE IS MANAGED BY SPRING ROO.
//You Jan push code into the target .java compilation unit if you wish to edit any member(s).

package com.theitroad.jpa.data;

import com.theitroad.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 Jan push code into the target .java compilation unit if you wish to edit any member(s).

package com.theitroad.jpa.data;

import com.theitroad.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 clean软件包,以生成SpringRoo AspectJ确实生成的一些Java文件,并生成下一个部署任务所需的WAR。

  • 将生成的WAR文件复制到Apache Tomcat home/webapp文件夹中。

  • 启动您的Apache Tomcat,然后输入如下所示的给定URL。