快速上手JHipster (Java Hipster)创建应用

原博文地址:https://www.shuibo.cn/blogs/8

JHipster简单来看是一个代码生成器,能够快速创建基于Spring Boot + AngularJS的应用程序。所以这就要求对Spring、Spring Boot要有所了解。 JHipster使用Node.js和Yeoman产生Java应用代码,使用Maven或者Gradle运行产生的代码

1)首先准备工作

安装JDK及配置环境变量,此处我使用JDK版本为1.8 安装maven,并且配置环境变量 安装Git 安装Node.js Dos安装Yeoman: npm install -g yo Dos安装bower: nmp install -g bower Dos安装Grunt: npm install -g grunt-cli 安装JHipster: npm install -g generator-jhipster 安装Mysql,已有请忽略,因为接下来要使用mysql

2)创建JHipster应用 首先,创建一个空目录,在其中创建您的应用程序: mkdir myapplication 转到该目录: cd myapplication/ 要生成您的应用程序,请键入: jhipster 接下出现交互回答,根据开发者的要求生成代码 Which type of application would you like to create?

  • Monolithic application: this a classical, one-size-fits-all application. It’s easier to use and develop, and is our recommended default.(整体应用程序,这里选择第一个)
  • Microservice application: in a microservices architecture, this is one of the services.(微服务应用程序)
  • Microservice gateway: in a microservices architecture, this is an edge server that routes and secures requests.(微服务网关)
  • JHipster UAA server: in a microservices architecture, this is an OAuth2 authentication server that secures microservices.(JHipster UAA服务器)

What is the base name of your application?

This is the name of your application.(项目名)

What is your default Java package name?

包名 例:cn.shuibo.jhipster

Do you want to use the JHipster Registry to configure, monitor and scale your application?

该JHipster注册表是用来管理你在运行应用程序的开源工具。 当使用微服务架构时这是必需的(这就是为什么这个问题只在生成巨石时才被问到)。

Which type of authentication would you like to use?(您想使用哪种类型的身份验证?)

Which type of database would you like to use?(选择数据库)

选择SQL,再选择MySql

Which production database would you like to use? 这是您将用于“制作”配置文件的数据库。要配置它,请修改您的src/main/resources/config/application-prod.yml文件。 如果您想使用Oracle,则需要手动安装Oracle JDBC驱动程序。

Which development database would you like to use?

H2,在内存中运行。这是使用JHipster最简单的方式,但重新启动服务器时,数据将会丢失。 H2,其数据存储在磁盘上。这目前在BETA测试中(而不是在Windows上运行),但这最终会比运行内存更好,因为在应用程序重新启动时您不会丢失数据。 要配置它,请修改您的src/main/resources/config/application-dev.yml文件。

Do you want to use the Spring cache abstraction?(你想使用Spring缓存抽象吗?)

Do you want to use Hibernate 2nd level cache?(你想使用Hibernate二级缓存吗?)

Would you like to use Maven or Gradle?

Maven

Which other technologies would you like to use?

这是一个多选择的答案,可以将一种或多种其他技术添加到应用程序中。可用的技术是:

社交登录(Google,Facebook,Twitter) 此选项仅在您选择SQL,MongoDB或Couchbase数据库时可用。它为JHipster 增加了Spring Social支持,因此最终用户可以使用他们的Google,Facebook或Twitter帐户登录。

API首先使用swagger-codegen进行开发 通过将Swagger-Codegen集成到构建中,此选项允许您为应用程序进行API优先开发。

使用ElasticSearch的搜索引擎 Elasticsearch将使用Spring Data Elasticsearch进行配置。您可以在我们的Elasticsearch指南中找到更多信息。 使用Hazelcast进行群集HTTP会话

默认情况下,JHipster仅使用HTTP会话来存储Spring Security的身份验证和授权信息。当然,您可以选择将更多数据放入HTTP会话中。如果您在群集中运行,使用HTTP会话会导致问题,特别是如果您没有将负载均衡器用于“粘性会话”。如果您想在集群内复制会话,请选择此选项以配置Hazelcast。

使用Spring Websocket的WebSockets Websocket可以使用Spring Websocket来启用。我们还提供了一个完整的示例,向您展示如何高效地使用框架。 使用Apache Kafka的异步消息 使用Apache Kafka作为发布/订阅消息代理。

Which Framework would you like to use for the client?(希望使用哪种框架)

Angular 5

AngularJS版本1.x(将来会弃用)

Would you like to use the LibSass stylesheet preprocessor for your CSS?(你想为你的CSS使用LibSass样式表预处理器吗?)

Would you like to enable internationalization support?(你想启用国际化支持吗?)

Which testing frameworks would you like to use?(你想使用哪种测试框架?)

Would you like to install other generators from the JHipster Marketplace?(你想从JHipster Marketplace安装其他生成器吗?)

然后等待至结束。

创建完成后运行 mvnw

刚创建完运行会报错,MySQl数据连接的错,不影响页面展示出来。

地址是:localhost:8080

到这里一个完整的应用就创建完成了

JHipster是使用Node.js和Yeoman产生Java应用代码,使用Maven(Gradle)运行产生的代码:

  1. src/main/java 目录有Spring Boot 配置类在config包中,JHipster使用Spring的Java 配置,没有XML配置。
  2. JPA实体或MongoDB文档类是在domain包. JPA实体使用缓存和auto-generated 主键配置. 如果你使用JHipster产生你的JPA实体, 可以创建1:N和N:N关系。
  3. 在repostiory包中是Spring Data的仓储.
  4. 通常@Service-beans 在服务层. 这些服务通常是配置为事务的 安全的业务对象。
  5. REST 端点存在web.rest 包中, 支持Spring MVC的REST
  6. JHipster也产生 Liquibase 改变日志文件,用来处理数据库更新,增加一个实体将创建特定的schema更新,这将会版本化,当应用重启时可被执行。
  7. 集成Spring的 Test 上下文测试支持.
  8. JHipster 创建完整可用的AngularJS 前端

本次Demo的Github地址:https://github.com/ishuibo/JHipsterDemo

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿DD

Spring Cloud Zuul中使用Swagger汇总API接口文档

之前给大家的回复都只是简单的说了个思路,昨天正好又有人问起,索性就举个例子写成博文供大家参考吧。

1584
来自专栏刘君君

Spring Cloud Netflix OSS 学习总结

8704
来自专栏Flutter入门到实战

优化Android Studio/Gradle构建

    经过测试,编译速度有很大提升,比较大的项目从之前的5-8分钟可以减少到1-2分钟。

1571
来自专栏菩提树下的杨过

jenkins 入门教程(中)

接上回继续,本文以我托管在bitbucket上的一个开源项目spring-boot-rest-framework做为演示,讲解如何创建自动化部署。 一、创建it...

3136
来自专栏zhisheng

Spring Boot 2.0系列文章(四):Spring Boot 2.0 源码阅读环境搭建

转载请务必注明原创地址为:http://www.54tianzhisheng.cn/2018/04/15/springboot2_code/

1921
来自专栏Aloys的开发之路

Groovy实现原理分析——准备工作

首先说明一下为什么要写这样一系列分析Groovy实现原理的博文。我之前在华为大数据部门曾维护过一份规则引擎的项目,该项目说白了就是一种DSL(Domain Sp...

3676
来自专栏Vue ssr

mod_rewrite: Could not set permissions on rewrite_log_lock

[crit] (22)Invalid argument: mod_rewrite: Could not set permissions on rewrite_...

2143
来自专栏Java技术栈

Spring Boot核心配置

启动类 在包根目录下添加启动类,必须包含main方法,再添加Spring Boot启动方法: SpringApplication.run(SampleContr...

3536
来自专栏问天丶天问

【Spring框架】配置解析(一)

1974
来自专栏程序猿DD

【译】Spring 官方教程:使用 Restdocs 创建 API 文档

原文:Creating API Documentation with Restdocs 译者:HoldDie 校对:Jitianyu 本指南将引导你了解在 Sp...

2K5

扫码关注云+社区

领取腾讯云代金券