Spring专题
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安装,本地安装步骤如下:
安装 Maven (推荐). 如果你使用 Gradle ,就不要安装Maven,JHipster已经有Gradle Wrapper.
安装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开发工具,你能检查你应用的性能。