jhipster介绍以及如何完成相关服务初始化配置

一、简介

1.1 什么是JHipster

JHipster是一个开发平台,用于生成,开发,部署Spring Boot + Angular/React Web Application和Spring microservices。

官网:https://www.jhipster.tech/

中文官网:https://www.jhipster-cn.tech

中文文档:https://www.jhipster-cn.tech/screenshots/

Github:github.com/jhipster/generator-jhipster

JHipster Online:start.jhipster.tech 

1.2 JHipster能做什么

JHipster可以自动化生成一个完整和现代的Web应用程序或微服务架构。

基于Spring Boot框架的服务端,具备高性能和高可用的Java技术栈;

基于Angular,React和Bootstrap的时尚,现代,移动优先的前端;

基于JHipster Registry,Netflix OSS,ELK堆栈和Docker的强大的微服务架构;

使用Yeoman,Webpack和Maven/Gradle构建应用程序的强大工作流程。

二、JHipster安装

1.安装 Java 8, Oracle 官网.

2.安装 Node.js, Node.js 官网 (必须选择 LTS 64位 版本,非 LTS 版本不支持)

3.安装 NPM,NPM 和 Node.js 是一起安装好了,但是你还需要更新一下 NPM 本身: npm install -g npm

4.如果你打算将来使用 JHipster Marketplace, 还需要安装 Yeoman: npm install -g yo

5.安装 JHipster: npm install -g generator-jhipster

 

三、创建应用

3.1 快速入门

1.创建一个空的目录来放你的项目:

  mkdir myapplication

2.进入目录:

  cd myapplication/

3.开始创建项目,输入命令:

 jhipster

4.接下来生成器会问你关于项目的一些问题,来根据你的需要创建项目。这些问题将在下一小节介绍。

 

3.2 创建应用的各选项

Which type of application would you like to create? (你要创建的应用类型)

你的应用类型取决于你是否需要使用微服务架构。关于微服务的使用 这里 有完整的说明,如果不是很确定,就选择默认的 “Monolithic application”。

你可以使用这些:

  • 巨石类应用(Monolithic application,也可翻译为传统类应用): 这个是经典的、通用的应用类型。比较容易使用和开发,是我们推荐的默认类型。
  • 微服务应用(Microservice application): 在微服务架构中,这是一个服务。
  • 微服务网关(Microservice gateway): 在微服务架构中,这个是边缘服务,提供请求的路由和安全控制。
  • JHipster UAA 服务:在微服务架构中,这里提供了 OAuth2 认证,安全控制。参考 JHipster UAA documentation

What is the base name of your application? (应用名称)

你项目的名称。 (译注:只能大小写、数字,没有特殊符号等)

What is your default Java package name? (Java 包名)

项目的根目录包设置。这个值存在 Yeoman 中,所以下一次你运行 generator 命令时该值为成为默认值。当然你也可以修改的。

Do you want to use the JHipster Registry to configure, monitor and scale your application? (是否需要使用 JHipster Registry 来配置、监控和扩展你的应用)

JHipster Registry 是一个开源的工具,用于管理你的应用。

在使用微服务架构时是必要的 (所以在在创建巨石类应用是询问为可选的)。

Which type of authentication would you like to use? (使用哪种认证)

这个问题也依赖于之前的回答。比如说,如果你选择了 JHipster Registry ,你就只能选择 JWT 认证方式了。

一共有着这些可选项:

  • JWT authentication: 使用 JSON Web Token (JWT),这个是默认值。
  • OAuth 2.0 / OIDC Authentication: 这个选项使用 OpenID Connect server, 比如 Keycloak 或者 Okta,可以在引用外部处理认证(译注:应该还能支持 CAS)。这方式比使用 JWT 更安全,但是需要设置一个 OpenID Connect Server,所以稍微复杂。请注意 JHipster 默认会从 OpenID Connect Server 同步用户数据,所以需要数据库。
  • HTTP Session Authentication: 经典的基于 session 的认证方式,大部分用户使用使用 Spring Security
  • Authentication with JHipster UAA server: 这使用的 JHipster UAA server 需要被独立的创建,同时也是 OAuth2 server 在应用外处理认证。

你可以到 应用安全 章节获取更多信息。

Which type of database would you like to use? (使用哪种数据库)

你可以选择:

  • SQL 数据库 (支持 H2, MySQL, MariaDB, PostgreSQL, MSSQL, Oracle),通过 Spring Data JPA 来访问数据库
  • MongoDB
  • Cassandra
  • Couchbase
  • No database,不使用数据库 (只在使用 微服务应用 使用 JWT 认证时可选)

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 数据库,数据存储于磁盘上。比运行在内存中的方式要好些,因为你不会丢失数据了。
  • 和生产环境一样的数据库:这种方式设置稍微复杂,但这样和生产一致是更好的方式。这也是在使用 liquibase-hibernate the development guide 时最好的方式。

(译注:推荐3,和生产库使用同样的数据库,而不是 H2,驱动不说,丢数据麻烦。只是需要设置一下数据库位置而已)

在配置文件 src/main/resources/config/application-dev.yml 中进行设置。

Do you want to use the Spring cache abstraction? (是否使用 Spring 缓存)

Spring 的缓存抽象可以使用多种缓存实现:你可以用 ehcache (本地缓存), Hazelcast (分布式缓存), 或者 Infinispan (另一种分布式缓存)。这能极大地提升你应用的性能表现,当然这个是可选项。

Do you want to use Hibernate 2nd level cache? (是否使用 Hibernate 二级缓存)

该选项只有在你选择了使用 SQL 数据库后才会出现 (因为 JHipster 是使用 Spring Data JPA 来访问它的) 并选择一个上一个问题中的缓存提供者。

Hibernate 是 JHipster 使用的 JPA 提供实现,它使用缓存来极大地提升性能。我们强烈推荐你选择该项,并根据你的应用的需要调整缓存。

Would you like to use Maven or Gradle? (使用 Maven 或 Gradle)

你可以编译你的 Java 项目使用 Maven 或者 Gradle。Maven 更稳定更成熟些。Gradle 更灵活、易扩展、以及酷炫些。

Which other technologies would you like to use? (使用哪些额外的技术)

API first development using swagger-codegen(API 优先开发模式,使用 swagger-codegen)

该选项让你可以采用 API优先(API-first)的开发方式,集成了 Swagger-Codegen

Search engine using ElasticSearch(搜索引擎 ElasticSearch)

Elasticsearch 将会配置 Spring Data Elasticsearch。阅读 Elasticsearch 说明 获取更多信息。

Clustered HTTP sessions using Hazelcast(使用 Hazelcast 来设置 Http Session 集群)

默认,JHipster 使用 HTTP session 来存储 Spring Security 的认证和授权信息。当然,你可以选择在 HTTP sessions 中存放其他更多信息。 使用 HTTP sessions 将会导致在集群环境中的问题,特别是你没有使用带有 “粘滞会话(sticky sessions)” 功能的负载均衡器。 如果你想在集群中复制 session,选中这个选项来配置 Hazelcast

WebSockets using Spring Websocket (使用 Spring Websocket)

Websockets 由 Spring Websocket 实现。我们还提供了一个完整的例子来展示如何使用。

Asynchronous messages using Apache Kafka (使用 Apache Kafka 异步消息)

使用 Apache Kafka 作为发布/订阅的消息服务。

Which Framework would you like to use for the client? (使用哪种客户端框架)

客户端框架。

可以选择:

  • Angular
  • React

Would you like to use the LibSass stylesheet preprocessor for your CSS? (使用 LibSass 预处理 CSS?)

Node-sass 是一个简化 CSS 的工具。还需要运行 Gulp 来使用它,自动配置好了。

Would you like to enable internationalization support? (支持国际化?)

默认情况下 JHipster 提供了非常棒的国际化支持,在客户端和服务端都是。同时,国际化也是有点复杂,你可以选择不适用改特性。

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

默认 JHipster 提供了 Java 的单元/集成测试 (使用 Spring 的 JUnit 支持) 和 JavaScript 的单元测试 (使用 Jest)。作为可选项,你还可以选择增加:

  • Gatling:性能测试
  • Cucumber:行为测试
  • Protractor:Angular 集成测试

阅读更多关于测试的信息 “Running tests” guide.

Would you like to install other generators from the JHipster Marketplace? (是否要从 JHipster Marketplace 上下载额外的插件)

JHipster Marketplace 是一个提供了额外功能的插件库,由外部工程师编写的各种功能,来添加各种非官方的特性。

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值