介绍 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(提供 Websockets、REST 和 MVC 框架)等;一个 Angular.js 前端;以及一套预配置的开发工具,如 YeomanMavenGradleGruntGulp.jsBower。JHipster 创建了一个完全配置好的 Spring Boot 应用程序,并提供了一系列用于用户管理、监控和日志记录的预定义屏幕。生成的 Spring Boot 应用程序经过特别定制,以便与 Angular.js 更顺畅地协作。

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

入门

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 profile(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 社区即将举办的所有活动。

查看全部