Spring 框架入门教程
1. 1. Spring 框架 2. 2. Spring 5 3. 3. Spring WebFlux 4. 4. 先介绍一下 Spring 5. 5. 什么是 Spring 依赖注入 6. 6. 什么是 Spring IoC 容器 和 Bean 7. 7. Spring Bean 的生命周期 8. 8. Spring REST 开发 9. 9. Spring REST XML 10. 10. Spring RestTemplate 开发 11. 11. Spring AOP 切面编程 12. 12. Spring AOP 方法调优 13. 13. Spring 注解详解 14. 14. Spring 核心注解之 @Autowired 15. 15. Spring 核心注解之 @RequestMapping 16. 16. Spring MVC 开发样例 17. 17. Spring MVC 开发指南 18. 18. Spring MVC 异常处理机制 19. 19. Spring MVC Validator 20. 20. Spring MVC 拦截器 21. 21. Spring MVC 文件上传 22. 22. Spring MVC 国际化(i18n) 23. 23. Spring MVC Hibernate MqSQL 24. 24. Spring ORM 25. 25. Spring ORM JPA 26. 26. Spring Data JPA 27. 27. Spring 事务管理 28. 28. 常用的 Spring JdbcTemplate 29. 29. Spring Security 简介 30. 30. Spring Security 教程 31. 31. Spring Security UserDetailsService 32. 32. Spring MVC 登录注销简单案例 33. 33. Spring Security Roles 34. 34. Spring Boot Tutorial 35. 35. Spring Boot Components 36. 36. Spring Boot CLI Hello World 37. 37. Spring Boot Initilizr Web 38. 38. Spring Boot Initilizr IDE 39. 39. Spring Boot Initilizr CLI 40. 40. Spring Boot Initilizr Tools 41. 41. Spring Boot MongoDB 42. 42. Spring Boot Redis Cache 43. 43. Spring Boot 常见面试问题 44. 44. Spring Batch 45. 45. Spring Batch 批处理示例 46. 46. Spring AMQP 47. 47. Spring RabbitMQ 48. 48. Spring AMQP RabbitMQ 49. 49. Apache ActiveMQ 安装与启动 50. 50. Spring ActiveMQ 教程 51. 51. Spring ActiveMQ 示例 52. 52. Spring JDBC 53. 53. Spring DataSource JNDI 54. 54. Spring Hibernate 55. 55. Spring Primefaces JPA 56. 56. Spring Primefaces MongoDB 57. 57. Spring Primefaces Hibernate 58. 58. SpringRoo Primefaces Hibernate 59. 59. Spring JSF 60. 60. Spring JDF Hibernate 61. 61. Spring Data MongoDB 62. 62. Spring 常见面试问题

58. SpringRoo Primefaces Hibernate

SpringRoo是一个开源软件工具,它使用约定优先于配置的概念,以一种驱动的命令行方式促进基于Java的企业软件应用程序的生成。我们介绍了一组教程,可以帮助您创建企业应用程序。将软件放入本地目录并解压缩。为了澄清起见,我们将其解压缩到D: SpringRoospring-roo-1.2.5.发布.

  • 将SpringRoo插件安装到eclipseide中。这可以通过帮助安装新软件把这个打出来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文件夹中。

    精选推荐