介绍 JHipster

工程 | Josh Long | 2015 年 2 月 10 日 | ...

这篇博文是来自社区成员 Julien Dubois (@juliendubois) 的客座博文,他曾是 SpringSource 的一名员工,现任 Ippon Technologies 的职员,也是 JHipster 项目的创建者。感谢 Julien!我希望看到更多这样的客座博文,所以,一如既往,请随时 联系我 (@starbuxman)!- Josh


the JHipster

引言

JHipster,或称“Java Hipster”,是一个方便的应用程序生成器,它可以为你创建一个 Spring Boot(这是 Java 部分)和 AngularJS(这是时髦的部分)应用程序。

在极短的时间内,JHipster 在 Github 上迅速走红,并且曾被在线杂志(如 InfoQ、Infoworld 或 SD Times)以及世界各地的会议(巴黎、伦敦、蒙特利尔、奥马哈、台北、里士满、法兰克福!)报道。

JHipster 专注于生成高质量的应用程序,它拥有一个使用广泛的 Spring 技术栈的 Java 后端;包括 Spring BootSpring SecuritySpring Data、Spring MVC(提供 WebSocket、REST 和 MVC 框架)等。前端则采用 Angular.js,并集成了一套预配置的开发工具,如 YeomanMavenGradleGruntGulp.jsBower。JHipster 创建了一个完全配置好的 Spring Boot 应用程序,包含用户管理、监控和日志记录的预定义屏幕。生成的 Spring Boot 应用程序特别为与 Angular.js 的协同工作进行了优化,以提供更流畅的体验。

JHipster 为您提供了更新、管理和打包生成应用程序的工具。运行 mvn package -Pprod 可以触发一个 Maven 构建,该构建使用 Spring Boot Maven 插件创建一个单一的可执行 .war 文件,并运行 Grunt 或 Gulp.js 任务来测试、最小化和优化 JavaScript、HTML 和 CSS 代码。

入门

JHipster 使用 Node.js 和 Yeoman 来生成应用程序,并使用 Java 和 Maven(或 Gradle)来运行生成的应用程序。您可以在 在线文档 中找到最新的入门指南。

请观看以下视频,了解如何创建 JHipster 应用程序,并使用提供的工具集修改和改进生成的代码。

生成的 Spring Boot 应用程序演练

生成的应用程序可能会因您创建时选择的选项而有很大差异。例如,如果您选择了 MongoDB 而不是 MySQL,您的 Spring Data 存储库将有所不同。如果您选择了“Java 8”而不是 Java 7,则生成的代码中将包含 Lambda 表达式。无论您做出何种选择,最终的应用程序都将共享相似的架构和基本代码库。

让我们来看看最终应用程序的一些关键特性

  • src/main/java 目录下的 config 包中包含 Spring Boot 配置类。JHipster 使用 Spring 的 Java 配置,不包含 XML 配置。
  • domain 包中的 JPA 实体或 MongoDB 文档类。JPA 实体配置了缓存和自动生成的**主键**。如果您使用 JHipster 生成 JPA 实体,它可以创建一对多和多对多的关系。
  • repository 包中的(小型)Spring Data 存储库。
  • 可选地,可以在 service 层包含常规的 @Service-bean。这些服务通常是事务性的、经过安全保护的业务对象。
  • REST 端点位于 web.rest 包中,使用 Spring MVC 的 REST 支持创建。
  • JHipster 还生成 Liquibase 变更集文件来处理数据库更新。添加新实体将创建一个特定的**模式更新**,该更新将被版本化,并在应用程序重新启动时执行。
  • 使用 Spring 的 Test Context 支持进行的集成测试。
  • JHipster 在此 Spring 应用程序之上创建了一个完全可用的 AngularJS 前端,并提供了 CRUD 屏幕来管理您的生成实体。

使用 JHipster 进行开发

JHipster 是一个很棒的应用程序启动器,但一旦您生成了应用程序并在 JPA 实体之上添加了一些 CRUD Angular.JS 屏幕,您就需要开始编写代码了。

JHipster 项目最终只是基于 Spring Boot 的简单 Maven 和 Gradle 项目,可以导入任何了解 Maven(或 Gradle)和 Java 的 IDE。

JHipster 提供了命令行工具来构建和更新您的应用程序。Grunt 或 Gulp.js 帮助您构建前端。例如,运行 grunt serve 将启动一个由 Grunt 管理的浏览器,当您的任何 HTML、JavaScript 或 CSS 代码发生更改时,它将自动重新加载。Bower 允许您升级或安装 JavaScript 或 CSS 库。例如,运行 bower install ng-table 将会安装 ng-table

您可以使用 Spring Boot Maven 插件(或 Gradle 插件)从命令行运行您的 Spring Boot 应用程序:mvn spring-boot:run。您可以使用 Maven Liquibase diff 命令来自动生成 Liquibase 变更集。运行 mvn liquibase:diff 将会检查您现有的数据库模式与您当前(已修改)的 JPA 代码,并生成必要的 Liquibase 变更集文件,以便自动更新您的数据库模式。

您可以使用 Docker 来设置您的开发环境。这对于一些高级用户(尤其是 Linux 用户)来说可能更简单,并且如果您有一个开发团队,它将允许您拥有一个一致的工作环境。为此创建了一个专门的 jhipster-docker 项目。有关更多详细信息,请查看 JHipster 安装文档页面

生产环境下的应用程序管理

JHipster 应用程序预置了一个名为 admin 的用户,该用户拥有对多个*管理*屏幕的访问权限。最值得关注的三个屏幕是 API 屏幕(使用 Swagger 生成)、指标屏幕和日志屏幕。API 屏幕记录了您的 Spring Boot 应用程序的 REST API,并简化了与使用 Angular.js 的前端开发人员的协作。指标屏幕使用 Dropwizard Metrics,为您提供有关应用程序性能的详细信息,包括 Spring bean 方法的性能。日志屏幕使用 Logback,允许您在运行时更改日志级别。例如,您可以更改 Spring Security 的日志级别,以获取有关安全配置的详细信息。

JHipster 具有 developmentproduction 模式。production 模式提供了一个经过最小化和优化的前端、GZip 压缩、HTTP 缓存等。为了测试 production 模式,请使用 prod 配置文件运行您的应用程序(Maven 或 Gradle 都可用):mvn spring-boot:run -Pprod。使用 Chrome 开发者工具,您可以审计生成的应用程序以检查性能。

部署到 Cloud Foundry

JHipster 提供了一个 Cloud Foundry 子生成器,可以轻松地将应用程序部署到 Cloud Foundry:yo jhipster:cloudfoundry。这会创建一个 Cloud Foundry 应用程序,创建一个数据库(支持 MySQL、PostgreSQL 和 MongoDB),然后将数据库绑定到应用程序,并将应用程序上传(cf push)到 Cloud Foundry。

下一步

JHipster 以更少的步骤带您走得更远。如果您想了解更多信息,请访问 JHipster 网站JHipster Github 页面,并 在 Twitter 上关注 @java_hipster

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速进步。

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有