素材巴巴 > 程序开发 >

Jhipster学习系列(一)

程序开发 2023-09-23 20:22:48

目录:

1、jhipster简介

2、jhispter生成单体项目

3、jhipster生成微服务项目及其配置



一、jhipster简介

JHipster或者称Java Hipster,是一个应用代码产生器,能够创建Spring Boot +
AngularJS的应用。开源项目地址:JHipster/Github。
JHipster使用Node.js和Yeoman产生Java应用代码,使用Maven(Gradle)运行产生
的代码,产生代码有如下关键特征:
src/main/java 目录有Spring Boot 配置类在config包中,JHipster使用Spring的
Java 配置,没有XML配置。
JPA实体或MongoDB文档类是在domain包. JPA实体使用缓存和autogenerated
主键配置. 如果你使用JHipster产生你的JPA实体, 可以创建1:N和
N:N关系。
在repostiory包中是Spring Data 仓储.
可选,你有通常@Service-beans 在服务层. 这些服务通常是配置为事务的 安
全的业务对象。
REST 端点存在web.rest 包中, 支持Spring MVC的REST
JHipster也产生 Liquibase 改变日志文件,用来处理数据库更新,增加一个实
体将创建特定的schema更新,这将会版本化,当应用重启时可被执行。
集成Spring的 Test 上下文测试支持.
JHipster 创建完整可用的AngularJS 前端,使用CRUD来管理你产生的实体。


JHipster使用手册

JHipster 是一个 Yeoman generator, 用于创建基于 Spring Boot + AngularJS/React 的
项目。
简易直说它是工具集堆综合技术,意思是由多种技术工具配置而成的Java Web
开发程式产生器。好处是由Java专家累积的开发经验,配上各类实用的框架技
术,去繁取精的运用,全方位的配置,制成出完备的开发应用程式,绝对适用
于面向服务的体系结构 (SOA)。
JHipster包括最先进的Java 8,特色是多用注解和JavaConfig, 不用XML 配置的
组态,配备了全方位的工作环境,从开发,测试,监控到制成,以及云部署。
能提供最先进的Java 技术如微服务综合技术 (Microservices)。

客户端技术栈

单页面Web应用:

强大的 Yeoman 开发工作流:

那么,如果单页面应用不能满足你的需求呢?

服务端技术栈:

一个完整的 Spring 应用:

支持生产环境:

假设你已具备下列环境:

JHipster 4.0+ 推荐使用yarn替代npm进行包管理


安装 yarn

1. 下载最新版yarn压缩包 latest.tar.gz
2. 解压其中的 dist 里面的内容到本地文件夹,例如 d:yarn
3. 将 d:yarnbin 添加到 PATH 中,如果是讲解压的内容全部放
在 d:yarn 中,则 d:yarndistbin 添加到 PATH
4. 修改yarn库路径 yarn config set cache-folder "你自己的缓存文件夹" 例
如 d:yarncache-folder
5. 修改为阿里镜像 yarn config set registry
"https://registry.npm.taobao.org" ,设置完后可以使用 yarn config
list 查看是否生效,如果要移除淘宝库,使用 yarn config delete
registry 则 registry 重置成默认库 https://registry.yarnpkg.com
6. 注意,最新版本(gateway ng2)使用淘宝镜像会报错,如果持续报错无效,删除
淘宝镜像,用自带的即可。
7. 如果还异常,可以 设置npm 的registry npm config set registry

"https://registry.npmjs.org"

安装jhipster

安装步骤
1. 修改npm全局路径
npm config set cache "nodejs安装目录node_cache"
npm config set prefix "nodejs安装目录node_npm"
2. 删除 用户变量 PATH 中的npm的环境变量 C:Users用户名
AppDataRoamingnpm 删除
3. 安装 Yeoman: yarn global add yo@1.8.5
4. 安装 JHipster: yarn global add generator-jhipster
xx@version 是安装指定版本,若未指定,则是最新的
至此,JHipster已经安装完毕



二、jhispter生成单体项目

这一部分很简单,官方文档写得很清楚 : jhipster创建应用

创建综合应用:

mkdir jhipsterapp
 cd jhipsterapp
 yo jhipster

? (1/15) Which *type* of application would you like to create? (
Use arrow keys) //选择创建的应用类型
> Monolithic application (recommended for simple projects) //综合
应用
Microservice application //微服务应用
Microservice gateway //微服务网关
[BETA] JHipster UAA server (for microservice OAuth2 authenticat
ion) //微服务OAuth2的身份认证服务
? (2/15) Which *Framework* would you like to use for the client?
//选择AngularJS 版本
AngularJS 1.x
> [BETA] Angular 2.x
? (3/15) What is the base name of your application? (app) //服务

? (4/15) Would you like to install other generators from the JHi
pster Marketplace? No //从JHipster Marketplace 安装其他生成器
? (5/15) What is your default Java package name? (com.shunneng.a
pp) //默认包名
? (6/15) Which *type* of authentication would you like to use? (
Use arrow keys) //选择认证方式
> HTTP Session Authentication (stateful, default Spring Security
mechanism) //Spring Security默认机制 基于HTTP会话的认证方式(带状态)
OAuth2 Authentication (stateless, with an OAuth2 server impleme
ntation) //OAuth2的认证实现(无状态)
JWT authentication (stateless, with a token) //J(son)W(eb)T(oke
n)(无状态)
? (7/15) Which *type* of database would you like to use? (Use ar
row keys) //选择数据库类型
> SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle) //关系型数据库
MongoDB //NoSQL
Cassandra //NoSQL
? (8/15) Which *production* database would you like to use? (Use
arrow keys) //生产数据库
> MySQL
MariaDB
PostgreSQL
Oracle - Warning! The Oracle JDBC driver (ojdbc) is not bundle
d because it is not Open Source. Please follow our documentation
to instal l it manually.
Microsoft SQL Server
? (9/15) Which *development* database would you like to use? (Us
e arrow keys) //开发数据库
> H2 with disk-based persistence //数据存储在磁盘的H2
H2 with in-memory persistence //内存H2(服务关闭数据丢失)
MySQL
? (10/15) Do you want to use Hibernate 2nd level cache? (Use arr
ow keys) //Hibernate 二级缓存
No
> Yes, with ehcache (local cache, for a single node) //本地缓存方
案 ehcache
Yes, with HazelCast (distributed cache, for multiple nodes) //
集群缓存方案,多节点缓存,适合多微服务的分布式环境
? (11/15) Would you like to use Maven or Gradle for building the
backend? (Use arrow keys) //选择后台构建系统
> Maven //更成熟,稳定,用户群体更大
Gradle //更灵活,易于扩展,支持maven一键转Gradle
? (12/15) Which other technologies would you like to use? (Press
to select) //可选技术
>( ) Social login (Google, Facebook, Twitter) //第三方社交登录,基
于OAuth2.0
( ) Search engine using ElasticSearch //集成搜索开源搜索引擎 Elast
icSearch
( ) Clustered HTTP sessions using Hazelcast //使用Hazelcast管理h
ttp session集群
( ) WebSockets using Spring Websocket //使用Spring Websocket
( ) [BETA] Asynchronous messages using Apache Kafka //Apache Ka
fka 是一种高吞吐量的分布式发布订阅消息系统
? (13/15) Would you like to use the LibSass stylesheet preproces
sor for your CSS? (y/N) //建议使用gulp定时构建,将sass转换成css而不是
运行时处理
? (14/15) Would you like to enable internationalization support?
(Y/n) //是否使用国际化
? Please choose the native language of the application? (Use arr
ow keys) //选择本地化语言
Catalan
> Chinese (Simplified) //中文简体
Chinese (Traditional)
Czech
Danish
Dutch
English
(Move up and down to reveal more choices)
? Please choose additional languages to install (Press t
o select)//选择其余支持语言
>( ) Catalan
( ) Chinese (Traditional)
( ) Czech
( ) Danish
( ) Dutch
( ) English
( ) French
(Move up and down to reveal more choices)
? (15/15) Which testing frameworks would you like to use? (Press
to select) //默认情况下 JHipster 提供 java 单元/集成测试(使
用Spring JUnit支持)和 JavaScript 单元测试(使用Karma.js)。这也是一个
可选项。
>( ) Gatling //使用 Gatling 进行性能测试。
( ) Cucumber //使用 Cucumber 模拟用户行为
( ) Protractor //使用 Protractor 对 AngularJS 进行集成测试
第一次创建比较慢,后边如果要创建综合应用或者微服务网关应用,可以将

node_modules 复制到其目录下面。

项目生成后,windows/系统在项目根目录运行mvnw,浏览器打开localhost:8080就会进入jhipster的界面,登陆后就可以看到:



避免文章过长,后续内容参见下一篇博客:jhipster学习系列(二)




标签:

素材巴巴 Copyright © 2013-2021 http://www.sucaibaba.com/. Some Rights Reserved. 备案号:备案中。