本文简单介绍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技术简介的更多相关文章

  1. JHipster技术栈理解 - UAA原理分析

    本文简要分析了UAA的认证机制和部分源码功能. UAA全称User Account and Authentication. 相关源码都是通过Jhipster生成,包括UAA,Gateway,Ident ...

  2. Java Servlet 技术简介

    Java Servlet 技术简介 Java 开发人员兼培训师 Roy Miller 将我们现有的 servlet 介绍资料修改成了这篇易于学习的实用教程.Roy 将介绍并解释 servlet 是什么 ...

  3. 【转】Android 防破解技术简介

    http://www.cnblogs.com/likeandroid/p/4888808.html Android 防破解技术简介 这几年随着互联网的不断发展,Android App 也越来越多!但是 ...

  4. InfiniBand技术简介

    InfiniBand技术简介   转载请在文首保留原文出处:EMC中文支持论坛https://community.emc.com/go/chinese 介绍         随着CPU和通讯处理速度的 ...

  5. Windows NT 技术简介

    Windows NT 技术简介 NT:New Technoly(新技术,因比DOS.WIN9X采用了很多新技术而得名) Windows NT基本介绍 WindowsNT是Microsoft推出的面向工 ...

  6. CSS border三角、圆角图形生成技术简介

    http://www.zhangxinxu.com/wordpress/?p=794 一.前言 利用CSS的border属性可以生成一些图形,例如三角或是圆角.纯粹的CSS2的内容,没有兼容性的问题, ...

  7. FC总线技术简介

    FC是由美国标准化委员会(ANSI)的X3T11小组于1988年提出的高速串行传输总线,解决了并行总线SCSI遇到的技术瓶颈,并在同一大的协议平台框架下可以映射更多FC-4上层协议.FC具备通道和网络 ...

  8. P2P技术简介

    P2P技术简介 NAT( Network Address Translation)穿越(俗称打洞)技术 前言: p2p已经存在于我们生活的方方面面:我们通过下载在工具(比如迅雷,bitorent,各种 ...

  9. 常见爬虫/BOT 对抗技术简介(二)

    上一篇文章分别从网络协议,Robots文件,JS渲染,行为分析等多方面讲了些“反爬虫”,“反-反爬虫”技术. 点击查看:<常见爬虫/BOT 对抗技术简介(一)> 本文将主要介绍各种IP地址 ...

随机推荐

  1. 14-02 Java Math类,Random类,System类,BigDecimal类

    Math类 Math的方法 package cn.itcast_01; /* * Math:用于数学运算的类. * 成员变量: * public static final double PI * pu ...

  2. 21天打造分布式爬虫-Spider类爬取糗事百科(七)

    7.1.糗事百科 安装 pip install pypiwin32 pip install Twisted-18.7.0-cp36-cp36m-win_amd64.whl pip install sc ...

  3. ​​ ​​Java后端学习路线图,你真的只需要这一张!

    ​​​​ 前言 学习路线图往往是学习一样技术的入门指南.网上搜到的Java学习路线图也是一抓一大把. 今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点.所谓不求最好,但求最全,学习Java ...

  4. ACM学习<一>

    c++指针|指针入门 什么是指针? 其实指针就像是其它变量一样,所不同的是一般的变量包含的是实际的真实的数据,而指针是一个指示器,它告诉程序在内存的哪块区域可以找到数据.这是一个非常重要的概念,有很多 ...

  5. Kafka实战-Storm Cluster

    1.概述 在<Kafka实战-实时日志统计流程>一文中,谈到了Storm的相关问题,在完成实时日志统计时,我们需要用到Storm去消费Kafka Cluster中的数据,所以,这里我单独给 ...

  6. POJ 3037 Skiing(如何使用SPFA求解二维最短路问题)

    题目链接: https://cn.vjudge.net/problem/POJ-3037 Bessie and the rest of Farmer John's cows are taking a ...

  7. [java]我的数据在哪里?——数据的内存模型

    在编写程序时,我们也许会有这样一个问题,我们编写的程序中的数据运行时,会保存在哪里呢?简单直接的回答可能是——内存.这个回答在多数情况下可能都是对的,但事实上并不准确,我们都知道内存,即随机访问存储器 ...

  8. java awt学习笔记

    最近这两天,花了些时间温习了java.awt的学习,故今日花些时间写下自己的总结吧. 1.常见的组件:Button.TextArea.Label.Checkbox.TextField Containe ...

  9. yapi部署文档

    windows 下 yapi部署文档 安装nodejs 安装mongodb 安装yapi 介绍 随着 web 技术的发展,前后端分离成为越来越多互联网公司构建应用的方式.前后端分离的优势是一套 Api ...

  10. 在C#中,如何连接已加密的Sqlite数据库

    对数据加密分两种,一种是对数据库本身进行加密,另一种是对数据表中的数据进行加密, 如果SQLite数据库加密,我这里使用的一个管理工具叫SQLiteDeveloper,如下就可以加密数据库 , 如果在 ...