JHipster简介
JHipster简介
JHipster或者称Java Hipster,是一个应用代码产生器,能够创建Spring Boot + AngularJS的应用。开源项目地址:JHipster/Github。
JHipster使用Node.js和Yeoman产生Java应用代码,使用Maven(Gradle)运行产生的代码,产生代码有如下关键特征:
- src/main/java 目录有Spring Boot 配置类在theconfig包中,JHipster使用Spring的Java 配置,没有XML配置.
- JPA实体或MongoDB文档类是在domain包. JPA实体使用缓存和auto-generated 主键配置. 如果你使用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首先需要下载安装,有两种安装方式,正常的本地安装和Docker安装,本地安装步骤如下:
- 安装Java: the Oracle website.
- 安装 Maven (推荐). 如果你使用 Gradle ,就不要安装Maven,JHipster已经有Gradle Wrapper.
- 从git-scm.com安装Git,推荐安装SourceTree
- 安装Node.js :the Node.js website. 也要安装npm,
- 安装Yeoman: npm install -g yo
- 安装Bower: npm install -g bower
- 安装 Grunt (recommended) : npm install -g grunt-cli 或安装 Gulp.js : npm install -g gulp.
- 安装 JHipster: npm install -g generator-jhipster
安装完毕可以快速产生应用代码,键入如下,浏览器打开http://localhost:8080运行
yo jhipster
创建应用后,下面需要创建业务实体,包括下面部件:
- 数据库表
- Liquibase 改变日志
- JPA实体代码
- Spring Data JPA 仓储代码
- Spring MVC REST 控制器,处理CRUD 操作
- AngularJS 路由,控制器
- HTML 视图
假设产生author实体,运行下面命令,然后添加字段:
yo jhipster:entity author
使用JHipster开发
一旦使用JHipster产生实体和服务以及前端AngularJS的CRUD以后你就需要开始编码,也就是说,JHipster帮助你完成项目的初始化配置模板。
JHipster提供命令行工具来构建和更新你的应用,Grunt或Gulp.js帮助你构建前端,比如运行grunt serve将启动由Grunt管理的浏览器,当你的HTML JS或CSS代码变动时,就会自动刷新;Bower让你升级或安装Javascript或CSS库包,比如运行bower install ng-table 将安装 ng-table。
你还能使用Spring Boot Maven插件从命令行运行你的Spring Boot应用:mvn spring-boot:run
你能使用Maven Liquibase 的diff自动产生一个Liquibase 改变日志,运行mvn liquibase:diff,将能检查现有的数据库表结构和你已经修改JPA代码有哪些差别,产生改变日志是为了自动更新你的数据库表结构。
你也能使用Docker设置你的开发环境,特定的jhipster-docker项目专门为此创建。
在产品环境管理应用
JHipster应用已经默认配置了admin用户,能够访问管理员的页面,三个最有趣的页面是:API页面(使用Swagger),度量页面和日志页面。API页面是陈列了你的Spring Boot应用的REST API,能够让前端开发人员使用Angular.JS调用;度量页面是使用Dropwizard Metric,让你能够发现你应用性能有关细节,包括Spring bean的方法性能;日志页面使用Logback而且让你可以在运行时改变日志级别,比如你可以改变Spring Security日志级别显示出有关你的安全配置的细节信息。
JHipster有development 和 production模型,production模型能最小化和优化前端,比如Gzip压缩,Http缓存等,为了测试production模型,使用prod配置(Maven和Gradle都适用)运行你的应用:mvn spring-boot:run -Pprod。使用Chrome开发工具,你能检查你应用的性能。
JHipster简介的更多相关文章
- JHipster技术栈理解 - UAA原理分析
本文简要分析了UAA的认证机制和部分源码功能. UAA全称User Account and Authentication. 相关源码都是通过Jhipster生成,包括UAA,Gateway,Ident ...
- JHipster技术简介
本文简单介绍Jhipster是什么,为什么用Jhipster,怎么用Jhipster. WHAT - 技术栈 JHipster是什么 JHipster是一个开发平台,用于生成,开发,部署Spring ...
- 使用jhipster搭建微服务--简单demo
简介 jhipster简单来说是一个基于nodejs+yeoman的java代码生成器.往大了说是基于java的一套微服务解决方案.请注意是一整套的微服务解决方案.jhipster在整个程序架构上都做 ...
- ASP.NET Core 1.1 简介
ASP.NET Core 1.1 于2016年11月16日发布.这个版本包括许多伟大的新功能以及许多错误修复和一般的增强.这个版本包含了多个新的中间件组件.针对Windows的WebListener服 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
- Cassandra简介
在前面的一篇文章<图形数据库Neo4J简介>中,我们介绍了一种非常流行的图形数据库Neo4J的使用方法.而在本文中,我们将对另外一种类型的NoSQL数据库——Cassandra进行简单地介 ...
- REST简介
一说到REST,我想大家的第一反应就是“啊,就是那种前后台通信方式.”但是在要求详细讲述它所提出的各个约束,以及如何开始搭建REST服务时,却很少有人能够清晰地说出它到底是什么,需要遵守什么样的准则. ...
- Microservice架构模式简介
在2014年,Sam Newman,Martin Fowler在ThoughtWorks的一位同事,出版了一本新书<Building Microservices>.该书描述了如何按照Mic ...
- const,static,extern 简介
const,static,extern 简介 一.const与宏的区别: const简介:之前常用的字符串常量,一般是抽成宏,但是苹果不推荐我们抽成宏,推荐我们使用const常量. 执行时刻:宏是预编 ...
随机推荐
- nodejs-- vuex中mapActions
mapActions() 返回的是一个对象, 用了 ... 扩展符后,才可以放进一个对象里,和其他组件内定义的 method 在同一个 methods 对象. { methods: mapAction ...
- Python基础:九、运算符
一.赋值运算 简单的赋值运算符号:= c = a + b #将a+b的元算结果赋值给c 加法赋值运算符:+= c += a #等效于 c = c + a 减法赋值运算符:-= c -= a #等效于 ...
- java基本数据类型和运算符
一.基本数据类型 种类: 内置数据类型 引用数据类型 1.内置数据类型 一共有八种基本类型,六个数字类型(四个整数类型,两个浮点型),一个布尔型,一个字符类型. (1)byte: byte数据类型是8 ...
- Linux上使用源代码安装软件
- [R] Lexical & Dynamic Scoping / Execution & Calling environments / Closures
Lexical Scoping :有Java繼承中呼叫子類時先生成父類的概念,呼叫函數後,系統會轉至其定義處,將其 environment 中所具有的東西(有些可能定義在外層)形成 Closure [ ...
- Vue 中渲染字符串形式的组件标签
在vue中如果要渲染字符串形式的标签,vue 提供了 v-html 指令,可以很方便的渲染出来.但是如果这个标签是一个组件,或者element-ui 的组件时,就不能解析出来了,因为v-html 只能 ...
- Django 00-socket、wsgi及初始django学习心得
HTTP基本原理1.http简述:http协议永远都是客户端发起请求,服务端回送请求.客户端和服务端本质上是一个socket客户端和服务端,http协议可以说是基于socket的再上层封装2.http ...
- Spring众多jar包的特点,及Spring jar包官网下载方法
下面给大家说说spring众多jar包的特点吧,无论对于初学spring的新手,还是spring高手,这篇文章都会给大家带来知识上的收获,如果你已经十分熟悉本文内容就当做一次温故知新吧.spring. ...
- MySQL 索引的增删查
查看索引: > SHOW INDEX FROM table_name; > SHOW KEYS FROM table_name; 删除索引: > DROP INDEX index ...
- .Net Core跨平台应用研究-HelloArm(串口篇)
引言 为了验证采用dotnet core技术开发的物联网设备数据采集接入服务应用是否能在高性价比的linux嵌入式平台运行,针对dotnet core应用程序进行嵌入式linux环境的发布部署运行验证 ...