原博文地址:https://www.shuibo.cn/blogs/8
JHipster简单来看是一个代码生成器,能够快速创建基于Spring Boot AngularJS的应用程序。所以这就要求对Spring、Spring Boot要有所了解。 JHipster使用Node.js和Yeoman产生Java应用代码,使用Maven或者Gradle运行产生的代码
1)首先准备工作
安装JDK及配置环境变量,此处我使用JDK版本为1.8 安装maven,并且配置环境变量 安装Git 安装Node.js Dos安装Yeoman: npm install -g yo Dos安装bower: nmp install -g bower Dos安装Grunt: npm install -g grunt-cli 安装JHipster: npm install -g generator-jhipster 安装Mysql,已有请忽略,因为接下来要使用mysql
2)创建JHipster应用 首先,创建一个空目录,在其中创建您的应用程序: mkdir myapplication 转到该目录: cd myapplication/ 要生成您的应用程序,请键入: jhipster 接下出现交互回答,根据开发者的要求生成代码 Which type of application would you like to create?
- Monolithic application: this a classical, one-size-fits-all application. It’s easier to use and develop, and is our recommended default.(整体应用程序,这里选择第一个)
- Microservice application: in a microservices architecture, this is one of the services.(微服务应用程序)
- Microservice gateway: in a microservices architecture, this is an edge server that routes and secures requests.(微服务网关)
- JHipster UAA server: in a microservices architecture, this is an OAuth2 authentication server that secures microservices.(JHipster UAA服务器)
What is the base name of your application?
This is the name of your application.(项目名)
What is your default Java package name?
包名 例:cn.shuibo.jhipster
Do you want to use the JHipster Registry to configure, monitor and scale your application?
该JHipster注册表是用来管理你在运行应用程序的开源工具。 当使用微服务架构时这是必需的(这就是为什么这个问题只在生成巨石时才被问到)。
Which type of authentication would you like to use?(您想使用哪种类型的身份验证?)
Which type of database would you like to use?(选择数据库)
选择SQL,再选择MySql
Which production database would you like to use? 这是您将用于“制作”配置文件的数据库。要配置它,请修改您的src/main/resources/config/application-prod.yml文件。 如果您想使用Oracle,则需要手动安装Oracle JDBC驱动程序。
Which development database would you like to use?
H2,在内存中运行。这是使用JHipster最简单的方式,但重新启动服务器时,数据将会丢失。 H2,其数据存储在磁盘上。这目前在BETA测试中(而不是在Windows上运行),但这最终会比运行内存更好,因为在应用程序重新启动时您不会丢失数据。 要配置它,请修改您的src/main/resources/config/application-dev.yml文件。
Do you want to use the Spring cache abstraction?(你想使用Spring缓存抽象吗?)
Do you want to use Hibernate 2nd level cache?(你想使用Hibernate二级缓存吗?)
Would you like to use Maven or Gradle?
Maven
Which other technologies would you like to use?
这是一个多选择的答案,可以将一种或多种其他技术添加到应用程序中。可用的技术是:
社交登录(Google,Facebook,Twitter) 此选项仅在您选择SQL,MongoDB或Couchbase数据库时可用。它为JHipster 增加了Spring Social支持,因此最终用户可以使用他们的Google,Facebook或Twitter帐户登录。
API首先使用swagger-codegen进行开发 通过将Swagger-Codegen集成到构建中,此选项允许您为应用程序进行API优先开发。
使用ElasticSearch的搜索引擎 Elasticsearch将使用Spring Data Elasticsearch进行配置。您可以在我们的Elasticsearch指南中找到更多信息。 使用Hazelcast进行群集HTTP会话
默认情况下,JHipster仅使用HTTP会话来存储Spring Security的身份验证和授权信息。当然,您可以选择将更多数据放入HTTP会话中。如果您在群集中运行,使用HTTP会话会导致问题,特别是如果您没有将负载均衡器用于“粘性会话”。如果您想在集群内复制会话,请选择此选项以配置Hazelcast。
使用Spring Websocket的WebSockets Websocket可以使用Spring Websocket来启用。我们还提供了一个完整的示例,向您展示如何高效地使用框架。 使用Apache Kafka的异步消息 使用Apache Kafka作为发布/订阅消息代理。
Which Framework would you like to use for the client?(希望使用哪种框架)
Angular 5
AngularJS版本1.x(将来会弃用)
Would you like to use the LibSass stylesheet preprocessor for your CSS?(你想为你的CSS使用LibSass样式表预处理器吗?)
Would you like to enable internationalization support?(你想启用国际化支持吗?)
Which testing frameworks would you like to use?(你想使用哪种测试框架?)
Would you like to install other generators from the JHipster Marketplace?(你想从JHipster Marketplace安装其他生成器吗?)
然后等待至结束。
创建完成后运行 mvnw
刚创建完运行会报错,MySQl数据连接的错,不影响页面展示出来。
地址是:localhost:8080
到这里一个完整的应用就创建完成了
JHipster是使用Node.js和Yeoman产生Java应用代码,使用Maven(Gradle)运行产生的代码:
- src/main/java 目录有Spring Boot 配置类在config包中,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 前端
本次Demo的Github地址:https://github.com/ishuibo/JHipsterDemo