前言
几年前,我咨询了几家使用Spring和Java开发后端系统的公司。在这些项目中,我介绍了Spring Boot以简化开发。DevOps团队经常钦佩其外部配置,其初始依赖项使得开发SOAP和REST API变得容易。
我也使用AngularJS好几年了。对于我在2013年初使用AngularJS的第一个项目,我实现了jQuery所需的40%的代码。我帮助该公司在我们集成Bootstrap的项目中实现其UI的现代化。我对AngularJS和Bootstrap都印象深刻,并且从那时起就使用过它们。2014年,我在项目中使用Ionic在本机iOS应用程序中实现HTML5 UI。我们在该项目中使用了AngularJS,Bootstrap和Spring Boot,它们对我们非常有用。当我听说JHipster时,我很有动力立即使用它。它将我最常用的框架组合成一个易于使用的软件包。
在我了解JHipster的头几个月里,我将它用作学习工具 - 生成项目并挖掘文件以查看它是如何编码的。JHipster项目是多年开发人员经验的信息和经验教训的金矿。我想写这本书是因为我非常了解JHipster中的所有工具。我想进一步了解这个精彩的项目。我希望Java开发人员能够通过利用AngularJS和Bootstrap看到他们再次成为时髦。我想向他们展示JavaScript Web开发是如何不可怕的,它只是另一个可以提高您的Web开发技能的强大平台。
本书的第一个版本于2015年10月发布,第二个版本于2016年12月发布,第三个版本(4.x匹配Angular)在JHipster迁移到Angular后于2017年秋季发布。版本4.5于2018年4月发布,另外还有一章关于微服务。这个版本针对JHipster版本5进行了更新。
我花了很多时间在2016-2018学习Angular和TypeScript,我很高兴为您带来这本书作为JHipster开发团队的积极成员。InfoQ迷你书中有什么?InfoQ迷你书的设计简洁,旨在为技术架构师提供快速而深入的方式,以期对新技术或新技术有一个坚定的概念性理解。您可以将这些书视为战略性或本质上涵盖的主题。
读完迷你书之后,读者应该对技术有一个基本的了解,包括何时何地应用它,它与其他技术的关系,以及他们已经吸收了其他专业人士的综合知识的整体感觉弄清楚这项技术的用途。然后,读者将能够在项目需要时对该技术做出明智的决策,并且可以在当时深入研究更详细信息(例如更大的书籍或教程)的来源。
本书的目标读者
本书专门针对希望通过学习JHipster快速介绍Angular,Bootstrap和Spring Boot的Web开发人员。JHipster 5也增加了对React的支持,但我不会在本书中介绍它,因为Angular是默认的。如果我添加React覆盖,这将不再是一个minibook。
如果你想看看本书开发的应用程序的React版本,请查看Roberto Melfi的21分反应项目。 本书需要的内容要试用本书中的代码示例,您需要一台运行最新操作系统的计算机(Windows,Linux或Mac OS X / macOS)。您将需要安装Node.js和Java。书代码是针对Node.js 8和JDK 8进行测试的,但是新版本也应该可行。
应该可以在Java 9+上运行JHipster应用程序,因为可以将Java 10与Spring Boot 2.0.1一起使用。Java 11支持在Spring Boot 2.1中。但是,JHipster依赖于许多尚未兼容Java 9+的插件。最常见的错误是java.lang.NoClassDefFoundError:javax / xml / bind / JAXBException。因此,我建议使用Java 8。
约定
我们在本书中使用了许多印刷约定来区分不同类型的信息。文本中的代码,包括命令,变量,文件名,CSS类名和属性名,如下所示。Spring Boot使用一个public static void main入口点,为您启动嵌入式Web服务器。代码块如下所示。它可能是彩色的,具体取决于您阅读本书的格式。
The JHipster Mini-Book
JHipster是你偶然发现的开源项目之一,并立即想到“当然!”它结合了三个非常成功的Web开发框架:Bootstrap,Angular和Spring Boot。Bootstrap是最早的主要Web组件框架之一。它最大的吸引力在于它只需要一点HTML并且它有效!我们在Java社区中为开发Web组件所做的所有努力都显示出Bootstrap更好的路径。它在HTML / CSS开发中平衡了竞争环境,就像Apple的人机界面指南对iOS应用程序所做的那样。 JHipster于2013年10月由Julien Dubois创立(Julien的第一次提交是在2013年10月21日)。第一个公开发布(版本0.3.1)于2013年12月7日推出。从那时起,该项目已经发布了超过172个版本!它是GitHub上的一个开源的Apache 2.0许可项目。它拥有一支由19名开发人员和430多名贡献者组成的核心团队。您可以在https://www.jhipster.tech找到它的主页。它的GitHub项目显示它主要用JavaScript(33%),Java(27%)和TypeScript(25%)编写。HTML排在第四位,占12%。JHipster的核心是Yeoman发电机。Yeoman是一个代码生成器,您使用yo命令运行该代码生成器以生成完整的应用程序或应用程序的有用部分。Yeoman发电机推广了Yeoman团队所谓的“Yeoman工作流程”。这是一个固定的客户端工具堆栈,可以帮助开发人员快速构建漂亮的Web应用程序。它可以提供工作所需的一切,而不会出现与手动设置相关的正常痛苦。Yeoman工作流程由三种类型的工具组成,可在构建Web应用程序时提高您的工作效率和满意度:•脚手架工具(哟),
8
当我开始编写本书时,我对示例应用程序有一些不同的想法。我的第一个想法是创建一个照片库来展示自2006年以来我一直在努力的1966年大众巴士。该项目最近完成了,我想要一个网站来展示多年来事态的发展。
我还想过创建一个博客应用程序。作为我在JHipster(丹佛Java用户组)的第一次演示的一部分,我创建了一个我在观众面前实时编码的博客应用程序。在演示之后,我花了几个小时来完善应用程序并用它启动了JHipster Mini-Book网站。在考虑了大众汽车画廊和开发博客应用程序之后,我心想,这还不够时髦吗? 不应该成为一本关于成为JHipster主页所谓的“Java时髦”的书,展示如何建立一个时尚的应用程序? 我写信给JHipster的创始人Julien Dubois和本书的技术编辑丹尼斯夏普,并问他们的想法。 我们来回了几个想法:一个Gitter克隆,一个JHipster编码器的工作板,一个购物车应用程序。 然后它打了我:有一个想法,我一直想发展一段时间。 它基本上是一个可用于监控您的健康状况的应用程序。 在9月下旬到2014年10月中旬,我做了糖排毒,在此期间我停止吃糖,开始定期锻炼,并停止饮酒。 十多年来我一直患有高血压,当时正在接受血压治疗。 在排毒的第一周,我用完了血压药。 由于新的处方需要医生访问,我决定等到排毒后才能得到它。 三周后,我不仅减掉了15磅体重,而且我的血压仍处于正常水平! 在我开始排毒之前,我想出了一个21点系统,看看我每周健康状况。 它的规则很简单:由于以下原因,您每天最多可以获得3分:1。如果您健康饮食,您会得到一分。 否则,为零。 如果你运动,你会得到一个观点。 如果你不喝酒,你就明白了。 我惊讶地发现在使用这个系统的第一周我得到了8分。 在排毒期间,我第一周得到16分,第二周得到20分,第三周得到21分。 在排毒之前,我认为健康饮食意味着除了快餐外什么都吃。 排毒后,我意识到健康饮食意味着不吃糖。 我也是精酿啤酒的大爱好者,所以我修改了酒精规则,每天允许两种更健康的酒精饮料(如灰狗或红酒)。 我的目标是每周赚15点。 我发现,如果我得到更多,我可能会减肥,并有良好的血压。 如果我少于15岁,我就有可能生病。 自2014年9月以来,我一直在跟踪我的健康状况。我体重减轻了30磅,血压恢复到正常水平。 我从20岁出头就没有好的血压,所以这对我来说是改变生活的方式。 我认为编写“21点健康”应用程序是有效的,因为跟踪您的健康状况始终是使用JHipster构建应用程序
9
重要。 可以跟踪您的健康状况的可穿戴设备可能能够使用我创建的API或挂钩来记录一天的积分。想象一下挂进dailymile(我跟踪我的运动)或Untappd(我有时会列出我喝的啤酒)。 甚至可以显示一天的其他活动(例如显示您在iOS Health上保留的血压分数)。 从监控的角度来看,我认为我的想法很适合JHipster和Spring Boot。 Spring Boot有很多适用于应用程序的健康监视器,现在您可以使用此JHipster应用程序来监控您的健康状况! 创建应用程序我开始使用安装JHipster说明。 我是Java开发人员,所以我已经安装了Java 8,以及Maven和Git。 我使用其指令从Nodejs.org和Yarn安装了Node.js,然后运行以下命令来安装JHipster。 npm install -g generator-jhipster如果需要安装Java,Maven或Git,请参阅JHipster的本地安装文档。 然后我继续构建我的应用程序。 与Javaland中的许多应用程序生成器不同,Yeoman希望您位于要创建项目的目录中,而不是为您创建目录。 所以我创建了一个21点的目录,并在其中输入以下命令来调用JHipster。 jhipster运行此命令后,系统提示我回答有关我希望如何生成应用程序的问题。 您可以在以下屏幕截图中看到我做出的选择。 JHipster Mini-Book 10图1.生成应用程序我尝试使用“21点”作为应用程序名称,但很快发现这会导致生成的TypeScript类名称出现问题。 使用数字启动类名是非法的,就像在Java中一样。 此过程会生成一个.yo-rc.json文件,该文件捕获您所做的所有选择。 您可以在空目录中使用此文件来创建具有相同设置的项目。 使用JHipster构建应用程序