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(这是 *hipster* 部分)应用程序。

在很短的时间内,JHipster 在 Github 上变得非常流行,并且已在在线杂志(例如 InfoQ、Infoworld 或 SD Times)和世界各地的会议(巴黎、伦敦、蒙特利尔、奥马哈、台北、里士满、法兰克福!)上被推荐。

JHipster 侧重于使用广泛的 Spring 技术生成高质量的应用程序;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 的测试上下文支持进行集成测试。
  • 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社区中所有即将举行的活动。

查看全部