Jhipster开发环境:安装使用

jhipster开发环境:安装使用

  • Jhipster是一个开发平台/脚手架,用于生成、开发、部署Spring Boot + Angular/React Web Application和Spring microservices。

  • Jhipster可以自动化生成一个完整和现代的Web应用程序或微服务架构。

  • Jhipster参考链接: https://www.jhipster.tech/cn/microservices-architecture/

jhipster代码生成demo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
➜   jhipster
INFO! Using JHipster version installed globally
INFO! Running default command
INFO! Executing jhipster:app
INFO! Options: from-cli: true


██╗ ██╗ ██╗ ████████╗ ███████╗ ██████╗ ████████╗ ████████╗ ███████╗
██║ ██║ ██║ ╚══██╔══╝ ██╔═══██╗ ██╔════╝ ╚══██╔══╝ ██╔═════╝ ██╔═══██╗
██║ ████████║ ██║ ███████╔╝ ╚█████╗ ██║ ██████╗ ███████╔╝
██╗ ██║ ██╔═══██║ ██║ ██╔════╝ ╚═══██╗ ██║ ██╔═══╝ ██╔══██║
╚██████╔╝ ██║ ██║ ████████╗ ██║ ██████╔╝ ██║ ████████╗ ██║ ╚██╗
╚═════╝ ╚═╝ ╚═╝ ╚═══════╝ ╚═╝ ╚═════╝ ╚═╝ ╚═══════╝ ╚═╝ ╚═╝

https://www.jhipster.tech

Welcome to JHipster v6.0.1
Application files will be generated in folder: /Applications/XAMPP/xamppfiles/htdocs/addx/serviceDemo
_______________________________________________________________________________________________________________

Documentation for creating an application is at https://www.jhipster.tech/creating-an-app/
If you find JHipster useful, consider sponsoring the project at https://opencollective.com/generator-jhipster
_______________________________________________________________________________________________________________

? Which *type* of application would you like to create? Microservice application
? What is the base name of your application? serviceDemo
? As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port con
flicts. 8081
? What is your default Java package name? ai.addx.demo
? Which service discovery server do you want to use? JHipster Registry (uses Eureka, provides Spring Cloud Config support and monitorin
g dashboards)
? Which *type* of authentication would you like to use? JWT authentication (stateless, with a token)
? Which *type* of database would you like to use? SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL)
? Which *production* database would you like to use? MySQL
? Which *development* database would you like to use? MySQL
? Do you want to use the Spring cache abstraction? Yes, with the Hazelcast implementation (distributed cache, for multiple nodes, suppo
rts rate-limiting for gateway applications)
? Do you want to use Hibernate 2nd level cache? Yes
? Would you like to use Maven or Gradle for building the backend? Maven
? Which other technologies would you like to use? (Press <space> to select, <a> to toggle all, <i> to invert selection)
? Would you like to enable internationalization support? Yes
? Please choose the native language of the application English
? Please choose additional languages to install (Press <space> to select, <a> to toggle all, <i> to invert selection)
? Besides JUnit and Jest, which testing frameworks would you like to use? (Press <space> to select, <a> to toggle all, <i> to invert se
lection)
? Would you like to install other generators from the JHipster Marketplace? No

Installing languages: en for server
Git repository initialized.

KeyStore 'src/main/resources/config/tls/keystore.p12' generated successfully.

create .prettierrc
create .prettierignore
create src/main/jib/entrypoint.sh
create mvnw
create mvnw.cmd
create .mvn/wrapper/maven-wrapper.jar
create .mvn/wrapper/maven-wrapper.properties
create .mvn/wrapper/MavenWrapperDownloader.java
create pom.xml
create src/main/resources/banner.txt
create src/main/resources/templates/error.html
create src/main/resources/logback-spring.xml
create src/main/resources/i18n/messages.properties
create src/main/resources/config/liquibase/changelog/00000000000000_initial_schema.xml
create src/main/resources/config/liquibase/master.xml
create src/main/java/ai/addx/demo/security/SpringSecurityAuditorAware.java
create src/main/java/ai/addx/demo/security/SecurityUtils.java
create src/main/java/ai/addx/demo/security/AuthoritiesConstants.java
create src/main/java/ai/addx/demo/security/package-info.java
create src/test/java/ai/addx/demo/security/SecurityUtilsUnitTest.java
create src/main/java/ai/addx/demo/security/jwt/TokenProvider.java
create src/main/java/ai/addx/demo/security/jwt/JWTFilter.java
create src/main/java/ai/addx/demo/security/jwt/JWTConfigurer.java
create src/main/java/ai/addx/demo/config/SecurityConfiguration.java
create src/main/java/ai/addx/demo/config/FeignConfiguration.java
create src/main/java/ai/addx/demo/client/UserFeignClientInterceptor.java
create src/main/resources/static/index.html
create src/main/java/ai/addx/demo/ServiceDemoApp.java
create src/main/java/ai/addx/demo/ApplicationWebXml.java
create src/main/java/ai/addx/demo/aop/logging/LoggingAspect.java
create src/main/java/ai/addx/demo/config/DefaultProfileUtil.java
create src/main/java/ai/addx/demo/config/package-info.java
create src/main/java/ai/addx/demo/config/AsyncConfiguration.java
create src/main/java/ai/addx/demo/config/DateTimeFormatConfiguration.java
create src/main/java/ai/addx/demo/config/LoggingConfiguration.java
create src/main/java/ai/addx/demo/config/ApplicationProperties.java
create src/main/java/ai/addx/demo/config/JacksonConfiguration.java
create src/main/java/ai/addx/demo/config/LocaleConfiguration.java
create src/main/java/ai/addx/demo/config/LoggingAspectConfiguration.java
create src/main/java/ai/addx/demo/config/WebConfigurer.java
create src/main/java/ai/addx/demo/config/Constants.java
create src/main/java/ai/addx/demo/config/CacheConfiguration.java
create src/main/java/ai/addx/demo/config/CloudDatabaseConfiguration.java
create src/main/java/ai/addx/demo/config/DatabaseConfiguration.java
create src/main/java/ai/addx/demo/config/audit/package-info.java
create src/main/java/ai/addx/demo/config/audit/AuditEventConverter.java
create src/main/java/ai/addx/demo/config/LiquibaseConfiguration.java
create src/main/java/ai/addx/demo/domain/package-info.java
create src/main/java/ai/addx/demo/domain/AbstractAuditingEntity.java
create src/main/java/ai/addx/demo/domain/PersistentAuditEvent.java
create src/main/java/ai/addx/demo/repository/package-info.java
create src/main/java/ai/addx/demo/service/package-info.java
create src/main/java/ai/addx/demo/web/rest/errors/package-info.java
create src/main/java/ai/addx/demo/web/rest/errors/BadRequestAlertException.java
create src/main/java/ai/addx/demo/web/rest/errors/ErrorConstants.java
create src/main/java/ai/addx/demo/web/rest/errors/ExceptionTranslator.java
create src/main/java/ai/addx/demo/web/rest/errors/FieldErrorVM.java
create src/main/java/ai/addx/demo/web/rest/vm/package-info.java
create src/main/java/ai/addx/demo/web/rest/package-info.java
create src/test/java/ai/addx/demo/web/rest/TestUtil.java
create src/test/java/ai/addx/demo/web/rest/errors/ExceptionTranslatorIT.java
create src/test/java/ai/addx/demo/web/rest/errors/ExceptionTranslatorTestController.java
create src/test/java/ai/addx/demo/config/timezone/HibernateTimeZoneIT.java
create src/test/java/ai/addx/demo/repository/timezone/DateTimeWrapper.java
create src/test/java/ai/addx/demo/repository/timezone/DateTimeWrapperRepository.java
create src/test/resources/logback.xml
create src/test/java/ai/addx/demo/config/WebConfigurerTest.java
create src/test/java/ai/addx/demo/config/WebConfigurerTestController.java
create src/test/java/ai/addx/demo/security/jwt/TokenProviderTest.java
create src/test/java/ai/addx/demo/security/jwt/JWTFilterTest.java
create .gitignore
create .gitattributes
create .editorconfig
create sonar-project.properties
create src/main/resources/i18n/messages_en.properties
create package.json
create src/main/docker/app.yml
create src/main/docker/sonar.yml
create src/main/docker/monitoring.yml
create src/main/docker/prometheus/prometheus.yml
create src/main/docker/grafana/provisioning/dashboards/dashboard.yml
create src/main/docker/grafana/provisioning/dashboards/JVM.json
create src/main/docker/grafana/provisioning/datasources/datasource.yml
create src/main/docker/mysql.yml
create src/main/docker/hazelcast-management-center.yml
create src/main/docker/central-server-config/README.md
create src/main/docker/jhipster-registry.yml
create src/main/docker/central-server-config/docker-config/application.yml
create src/main/docker/central-server-config/localhost-config/application.yml
create src/main/resources/config/application.yml
create src/main/resources/config/application-dev.yml
create src/main/resources/config/application-tls.yml
create src/main/resources/config/application-prod.yml
create src/main/resources/config/bootstrap.yml
create src/main/resources/config/bootstrap-prod.yml
create src/test/resources/config/application.yml
create src/test/resources/config/bootstrap.yml
create README.md

Installing generator-jhipster@6.0.1 locally using npm

> spawn-sync@1.0.15 postinstall /Applications/XAMPP/xamppfiles/htdocs/addx/serviceDemo/node_modules/spawn-sync
> node postinstall

npm notice created a lockfile as package-lock.json. You should commit this file.
added 526 packages from 338 contributors and audited 3754 packages in 11.887s
found 0 vulnerabilities

Application successfully committed to Git.

If you find JHipster useful consider sponsoring the project https://www.jhipster.tech/sponsors/

Server application generated successfully.

Run your Spring Boot application:
./mvnw
INFO! Congratulations, JHipster execution is complete!
➜ idea .

开发环境运行说明

  • 1、启动注册中心

    1
    2
    3
    4
    5
    6
    7
    8
    # 前端项目:安装依赖、运行
    yarn install # 安装前端依赖
    yarn start # 编译运行Angular项目
    #也可以使用npm
    npm install
    npm start
    # 后端java服务启动
    # mvn或者idea安装依赖、启动
  • 2、启动gateway

    1
    #mvn或者idea安装依赖、启动
  • 3、启动uaa(暂无)

  • 4、生成微服务项目代码、配置启动

    1
    使用jhipster生成项目基础代码,修改配置添加业务逻辑
  • 安照上方执行顺序启动项目,启动成功后会注册到注册中心。

  • 项目模块简介

  • 项目分为三个部分 uaa 授权中心、gateway网关、service服务

    • 其中uaa是可选的,可以使用jwt去代替uaa,uaa本质上是一种oauth2的授权方式,所有的服务通过uaa进行统一授权
    • 其中gateway是必选的,是承载对外对客户暴露的接口,如果前后端项目是分离部署的,那么gateway 只会承载controller;如果前后端项目是一起部署的,那么这里的gateway 则承载了整个的web
    • 其中service是可选的也是多选的,主要承载业务,也就是你的服务,根据你的业务合理的去创建service
    • register注册中心,服务启动和关闭时分别会去注册中心注册、摘除自身,提供服务间发现
  • spring cloud核心组件

    • 服务发现 - Netflix Eureka
    • 服务网关 - Netflix Zuul
    • 负载均衡 - Netflix Ribbon
    • 断路器 - Netflix Hystrix
    • 分布式配置 - Spring Cloud Config
    • 消息总线 - Spring Cloud Bus
    • 服务间调用 - Feign
  • 参考图

  • 推荐:《深入理解Spring Cloud与微服务构建》