JHipster或者稱Java Hipster,是一個(gè)應(yīng)用代碼產(chǎn)生器,能夠創(chuàng)建Spring Boot + AngularJS的應(yīng)用。開源項(xiàng)目地址:JHipster/Github。
JHipster使用Node.js和Yeoman產(chǎn)生Java應(yīng)用代碼,使用Maven(Gradle)運(yùn)行產(chǎn)生的代碼,產(chǎn)生代碼有如下關(guān)鍵特征:
- src/main/java 目錄有Spring Boot 配置類在theconfig包中,JHipster使用Spring的Java 配置,沒有XML配置.
- JPA實(shí)體或MongoDB文檔類是在domain包. JPA實(shí)體使用緩存和auto-generated 主鍵配置. 如果你使用JHipster產(chǎn)生你的JPA實(shí)體, 可以創(chuàng)建1:N和N:N關(guān)系。
- 在repostiory包中是Spring Data 倉儲(chǔ).
- 可選,你有通常@Service-beans 在服務(wù)層. 這些服務(wù)通常是配置為事務(wù)的 安全的業(yè)務(wù)對象。
- REST 端點(diǎn)存在web.rest 包中, 支持Spring MVC的REST
- JHipster也產(chǎn)生 Liquibase 改變?nèi)罩疚募?,用來處理?shù)據(jù)庫更新,增加一個(gè)實(shí)體將創(chuàng)建特定的schema更新,這將會(huì)版本化,當(dāng)應(yīng)用重啟時(shí)可被執(zhí)行。
- 集成Spring的 Test 上下文測試支持.
- JHipster 創(chuàng)建完整可用的AngularJS 前端,使用CRUD來管理你產(chǎn)生的實(shí)體。
安裝
JHipster首先需要下載安裝,有兩種安裝方式,正常的本地安裝和Docker安裝,本地安裝步驟如下:
- 安裝Java: the Oracle website.
- 安裝 Maven (推薦). 如果你使用 Gradle ,就不要安裝Maven,JHipster已經(jīng)有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
安裝完畢可以快速產(chǎn)生應(yīng)用代碼,鍵入如下,瀏覽器打開http://localhost:8080運(yùn)行
yo jhipster
創(chuàng)建應(yīng)用后,下面需要?jiǎng)?chuàng)建業(yè)務(wù)實(shí)體,包括下面部件:
- 數(shù)據(jù)庫表
- Liquibase 改變?nèi)罩?/li>
- JPA實(shí)體代碼
- Spring Data JPA 倉儲(chǔ)代碼
- Spring MVC REST 控制器,處理CRUD 操作
- AngularJS 路由,控制器
- HTML 視圖
假設(shè)產(chǎn)生author實(shí)體,運(yùn)行下面命令,然后添加字段:
yo jhipster:entity author
使用JHipster開發(fā)
一旦使用JHipster產(chǎn)生實(shí)體和服務(wù)以及前端AngularJS的CRUD以后你就需要開始編碼,也就是說,JHipster幫助你完成項(xiàng)目的初始化配置模板。
JHipster提供命令行工具來構(gòu)建和更新你的應(yīng)用,Grunt或Gulp.js幫助你構(gòu)建前端,比如運(yùn)行g(shù)runt serve將啟動(dòng)由Grunt管理的瀏覽器,當(dāng)你的HTML JS或CSS代碼變動(dòng)時(shí),就會(huì)自動(dòng)刷新;Bower讓你升級或安裝Javascript或CSS庫包,比如運(yùn)行bower install ng-table 將安裝 ng-table。
你還能使用Spring Boot Maven插件從命令行運(yùn)行你的Spring Boot應(yīng)用:mvn spring-boot:run
你能使用Maven Liquibase 的diff自動(dòng)產(chǎn)生一個(gè)Liquibase 改變?nèi)罩?,運(yùn)行mvn liquibase:diff,將能檢查現(xiàn)有的數(shù)據(jù)庫表結(jié)構(gòu)和你已經(jīng)修改JPA代碼有哪些差別,產(chǎn)生改變?nèi)罩臼菫榱俗詣?dòng)更新你的數(shù)據(jù)庫表結(jié)構(gòu)。
你也能使用Docker設(shè)置你的開發(fā)環(huán)境,特定的jhipster-docker項(xiàng)目專門為此創(chuàng)建。
在產(chǎn)品環(huán)境管理應(yīng)用
JHipster應(yīng)用已經(jīng)默認(rèn)配置了admin用戶,能夠訪問管理員的頁面,三個(gè)最有趣的頁面是:API頁面(使用Swagger),度量頁面和日志頁面。
API頁面是陳列了你的Spring Boot應(yīng)用的REST API,能夠讓前端開發(fā)人員使用Angular.JS調(diào)用;度量頁面是使用Dropwizard Metric,讓你能夠發(fā)現(xiàn)你應(yīng)用性能有關(guān)細(xì)節(jié),包括Spring bean的方法性能;日志頁面使用Logback而且讓你可以在運(yùn)行時(shí)改變?nèi)罩炯墑e,比如你可以改變Spring Security日志級別顯示出有關(guān)你的安全配置的細(xì)節(jié)信息。
JHipster有development 和 production模型,production模型能最小化和優(yōu)化前端,比如Gzip壓縮,Http緩存等,為了測試production模型,使用prod配置(Maven和Gradle都適用)運(yùn)行你的應(yīng)用:mvn spring-boot:run -Pprod。
使用Chrome開發(fā)工具,你能檢查你應(yīng)用的性能。