JHipster技术简介
本文简单介绍Jhipster是什么,为什么用Jhipster,怎么用Jhipster。
WHAT - 技术栈
JHipster是什么
JHipster是一个开发平台,用于生成,开发,部署Spring Boot + Angular/React Web Application和Spring microservices。

JHipster能做什么
JHipster可以自动化生成一个完整和现代的Web应用程序或微服务架构。
- 基于Spring Boot框架的服务端,具备高性能和高可用的Java技术栈;
- 基于Angular,React和Bootstrap的时尚,现代,移动优先的前端;
- 基于JHipster Registry,Netflix OSS,ELK堆栈和Docker的强大的微服务架构;
- 使用Yeoman,Webpack和Maven/Gradle构建应用程序的强大工作流程。
JHipster开发效率
以10个微服务,每个微服务包含1个数据表和4个UI界面(基本CURD界面)的开发规模为例:
| 工作项 | 人工开发(人天) | JHipster开发(人天) |
|---|---|---|
| 数据库建表 | 1 | 0 |
| 项目创建及配置文件编写 | 2 | 0 |
| 开发CURD代码 | 5 | 1 |
| 开发前端UI | 10 | 1 |
| 合计: | 18 | 2 |
在实际项目中因为定制化工作的需要,开发效率的差距会比这个小,但正常情况下减少一半以上的工作量是可以达到的。
前端技术栈
- Angular 5和React
- Bootstrap响应式网页设计
- HTML5
- 国际化
- CSS的Sass
- WebSocket
- 使用Yarn安装新的JavaScript库
- 使用Webpack构建,优化和实时加载
- 使用Jest和Protractor进行测试
- 支持Thymeleaf模板引擎
后端技术栈
- Spring Boot
- Maven和Gradle
- Spring Security
- Spring MVC REST + Jackson
- Spring Websocket
- Spring Data JPA
- Liquibase
- Elasticsearch
- MongoDB和Couchbase
- Cassandra
- Kafka
微服务技术栈
- 使用Netflix Zuul或Traefik作为HTTP路由
- 使用Netflix Eureka或HashiCorp Consul作为服务发现
- 使用Spring Cloud Config作为统一配置
CI/CD支持
- Jenkins
- Travis CI
- GitLab CI
- Circle CI
部署环境支持
- 使用ELK堆栈进行应用指标监控
- 使用ehcache,hazelcast或Infinispan进行缓存
- 优化的静态资源(gzip过滤器,HTTP缓存头)
- 使用Logback进行日志管理,可在运行时进行配置
- 使用HikariCP连接池以获得最佳性能
- 构建标准WAR文件或可执行JAR文件
- 完整的Docker和Docker-Compse支持
- 支持所有主要云提供商:AWS,Cloud Foundry,Heroku,Kubernetes,OpenShift,Docker等
哪些公司在用

WHY - 方法和实践
复杂架构设计的思路

业界对JHipster的评价
- DDD(领域驱动设计)的最佳实践
- 微服务架构的最佳实践
- 敏捷开发的最佳实践
- DevOps的最佳实践
HOW - 应用场景
标准化的数据访问服务
| 场景 | 通过JHipster生成标准化的数据访问微服务(简称DAMS),DAMS与数据库直接交互,提供Restful API给上层业务微服务调用。 |
| 效果 | 工程代码规范的标准化,标准代码开发的自动化,隔离业务逻辑和数据访问逻辑。 |
| 实现 | 现有JHipster功能即可满足。 |
客户项目的定制开发
| 场景 | 定制化开发工作,通过JHipster自动生成骨干代码,后期数据库设计变更,也可通过JHipster自动化更新代码。 |
| 效果 | 提高开发效率和代码质量,降低项目成本。 |
| 实现 | 现有JHipster功能即可满足。 |
开放平台和应用市场
| 场景 | 开发人员编写业务领域模型,JHipster自动生成后端微服务和前端UI。 |
| 效果 | 作为一种PaaS服务能力提供给开发者。 |
| 实现 | 需定制化JHipster源码。 |
GOAL - 目标和价值

参考资料
Web Site:https://www.jhipster.tech
JHipster Online:https://start.jhipster.tech/
Github:https://github.com/jhipster/generator-jhipster
Docker:https://store.docker.com/search?q=jhipster&source=community&type=image
相关文章
JHipster生成单体架构的应用示例
JHipster生成微服务架构的应用栈
JHipster技术简介的更多相关文章
- JHipster技术栈理解 - UAA原理分析
本文简要分析了UAA的认证机制和部分源码功能. UAA全称User Account and Authentication. 相关源码都是通过Jhipster生成,包括UAA,Gateway,Ident ...
- Java Servlet 技术简介
Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...
- 【转】Android 防破解技术简介
http://www.cnblogs.com/likeandroid/p/4888808.html Android 防破解技术简介 这几年随着互联网的不断发展,Android App 也越来越多!但是 ...
- InfiniBand技术简介
InfiniBand技术简介 转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍 随着CPU和通讯处理速度的 ...
- Windows NT 技术简介
Windows NT 技术简介 NT:New Technoly(新技术,因比DOS.WIN9X采用了很多新技术而得名) Windows NT基本介绍 WindowsNT是Microsoft推出的面向工 ...
- CSS border三角、圆角图形生成技术简介
http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...
- FC总线技术简介
FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...
- P2P技术简介
P2P技术简介 NAT( Network Address Translation)穿越(俗称打洞)技术 前言: p2p已经存在于我们生活的方方面面:我们通过下载在工具(比如迅雷,bitorent,各种 ...
- 常见爬虫/BOT 对抗技术简介(二)
上一篇文章分别从网络协议,Robots文件,JS渲染,行为分析等多方面讲了些“反爬虫”,“反-反爬虫”技术. 点击查看:<常见爬虫/BOT 对抗技术简介(一)> 本文将主要介绍各种IP地址 ...
随机推荐
- 自己动手实现爬虫scrapy框架思路汇总
这里先简要温习下爬虫实际操作: cd ~/Desktop/spider scrapy startproject lastspider # 创建爬虫工程 cd lastspider/ # 进入工程 sc ...
- 【适合公司业务】全网最详细的IDEA里如何正确新建【普通或者Maven】的Java web项目并发布到Tomcat上运行成功【博主强烈推荐】(类似eclipse里同一个workspace下【多个子项目】并存)(图文详解)
不多说,直接上干货! 首先,大家要明确,IDEA.Eclipse和MyEclipse等编辑器之间的新建和运行手法是不一样的. 如果是在Myeclipse里,则是File -> new -> ...
- Hibernate懒加载解析
Hibernate懒加载解析 在Hibernate框架中,当我们要访问的数据量过大时,明显用缓存不太合适, 因为内存容量有限 ,为了减少并发量,减少系统资源的消耗,这时Hibernate用懒加载机制来 ...
- visual studio code (vsc)中查看 php 数组的全部元素
在 vsc 调试 php 时,如果数组元素过多,只能查看前面 30个左右的元素,如果需要看更多的元素,可以配置 xDebugSettings 修改项目中的 .vscode/launch.json 文件 ...
- NetMQ 发布订阅模式 Publisher-Subscriber
第一部分引用于:点击打开 1:简单介绍 PUB-SUB模式一般处理的都不是系统的关键数据.发布者不关注订阅者是否收到发布的消息,订阅者也不知道自己是否收到了发布者发出的所有消息.你也不知道订阅者何时开 ...
- Java设计模式学习记录-GoF设计模式概述
前言 最近要开始学习设计模式了,以前是偶尔会看看设计模式的书或是在网上翻到了某种设计模式,就顺便看看,也没有仔细的学习过.前段时间看完了JVM的知识,然后就想着JVM那么费劲的东西都看完了,说明自己学 ...
- S3C2440 DMA 驱动示例
将 DMA 抽象为一个字符设备,在初始化函数中调用 void *dma_alloc_writecombine(struct device *dev, size_t size, dma_addr_t * ...
- [转]来扯点ionic3[7] LocalStorage的使用—以登录和注销为例
本文转自:https://segmentfault.com/a/1190000012146400 一般意义上,一个互联网 APP 中的数据主自与服务器的交互,但是对于有些数据,我们希望获取到它们以后能 ...
- SQL Server新建登录名,实现SQL Server身份验证模式
一.如果是默认安装,没有选择SQL Server和Windows身份验证模式,需要重新设置. 1.右击服务器,属性,常规项中点选“SQL Server和Windows身份验证模式” 2.点击“确定”按 ...
- 一个比较好用的省内存的ORM
http://www.52chloe.com 记录一下,完了,就这样