领先一步
VMware 提供培训和认证,以加速您的进步。
了解更多这篇文章是由社区成员 Julien Dubois (@juliendubois) 撰写的客座文章,他曾是 SpringSource 的员工,现在就职于 Ippon Technologies,并且是 JHipster 项目的创建者。感谢 Julien!我希望看到更多这样的客座文章,所以——像往常一样——请随时 联系我 (@starbuxman)!-Josh
JHipster,或“Java Hipster”,是一个方便的应用程序生成器,它将为您创建一个 Spring Boot(这是 Java 部分)和 AngularJS(这是 *hipster* 部分)应用程序。
在很短的时间内,JHipster 在 Github 上变得非常流行,并且已在在线杂志(例如 InfoQ、Infoworld 或 SD Times)和世界各地的会议(巴黎、伦敦、蒙特利尔、奥马哈、台北、里士满、法兰克福!)上被推荐。
JHipster 侧重于使用广泛的 Spring 技术生成高质量的应用程序;Spring Boot、Spring Security、Spring Data、Spring MVC(提供 Websocket、REST 和 MVC 的框架)等,以及 Angular.js 前端和一套预配置的开发工具,例如 Yeoman、Maven、Gradle、Grunt、Gulp.js 和 Bower。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 应用程序并使用提供的工具集来修改和改进生成的代码。
生成的应用程序可能会有很大不同,具体取决于您在创建应用程序时选择的选项。例如,如果您选择 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。这些服务通常是具有事务性和安全性的业务对象。web.rest
包中,使用 Spring MVC 的 REST 支持创建。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 具有 development
和 production
模式。production
模式为您提供精简和优化的前端、GZip 压缩、HTTP 缓存等。为了测试 production
模式,请使用 prod
配置文件运行您的应用程序(Maven 或 Gradle 都可用):mvn spring-boot:run -Pprod
。使用 Chrome 开发者工具,您可以运行生成的应用程序的审核以检查性能。
JHipster 有一个 Cloud Foundry 子生成器
,可以轻松地将应用程序部署到 Cloud Foundry:yo jhipster:cloudfoundry
。这将添加一个 Cloud Foundry 应用程序,创建一个数据库(支持 MySQL、PostgreSQL 和 MongoDB),然后将数据库绑定到应用程序并上传(cf push
)您的应用程序到 Cloud Foundry。
JHipster 帮您用更少的步骤走得更远。如果您想了解更多信息,请查看 JHipster 网站、JHipster Github 页面 并 关注 Twitter 上的 @java_hipster。