jHipster - 微服務(wù)搭建

jHipster 整合了springcloud 框架 也包含了EurekaServer ConfigServer等服務(wù)纵潦,我們通過一些簡單的命令就能部署一套基于微服務(wù)的系統(tǒng)

Paste_Image.png

[TOC]

jHipster微服務(wù)的幾個模塊

jHipster Registry

jhipster registry是一個基于spring cloud的配置中心徐鹤。所有的微服務(wù)APP都需要注冊到這里。
我們不需要手動的去創(chuàng)建這個項(xiàng)目邀层,jHipster已經(jīng)為我們準(zhǔn)備好了返敬。
https://github.com/jhipster/jhipster-registry

# 檢出
git clone https://github.com/jhipster/jhipster-registry.git
# 編譯啟動
mvn clean package
java -jar target/jhipster-registry-2.5.7.war

通過瀏覽器登錄
http://localhost:8761/
帳號 admin 密碼 admin

Paste_Image.png

uaa

部署完jHipster registry ,我們需要創(chuàng)建一個用于控制訪問權(quán)限的項(xiàng)目寥院。前提是我們已經(jīng)安裝好了jHipster

## 創(chuàng)建文件夾
mkdir cn.ctodb.uaa
cd cn.ctodb.uaa
yo jhipster

下面就是項(xiàng)目創(chuàng)建過程中的選項(xiàng)

        ██  ██    ██  ████████  ███████    ██████  ████████  ████████  ███████
        ██  ██    ██     ██     ██    ██  ██          ██     ██        ██    ██
        ██  ████████     ██     ███████    █████      ██     ██████    ███████
  ██    ██  ██    ██     ██     ██             ██     ██     ██        ██   ██
   ██████   ██    ██  ████████  ██        ██████      ██     ████████  ██    ██

                            http://jhipster.github.io

Welcome to the JHipster Generator v3.12.2
Documentation for creating an application: https://jhipster.github.io/creating-an-app/
Application files will be generated in folder: C:\ws\ctodb-msp\uaa
? (1/14) Which *type* of application would you like to create? [BETA] JHipster UAA server (for microservice OAuth2 authentication)
? (2/14) What is the base name of your application? uaa
? (3/14) Would you like to install other generators from the JHipster Market Place? No
? (3/14) As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts. 9999
? (4/14) What is your default Java package name? cn.ctodb.uaa
? (5/14) Which Service Discovery and Configuration solution would you like to use? JHipster Registry (using Eureka and Spring Cloud Config)
? (6/14) Which *type* of database would you like to use? SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL)
? (7/14) Which *production* database would you like to use? MySQL
? (8/14) Which *development* database would you like to use? MySQL
? (9/14) Do you want to use Hibernate 2nd level cache? Yes, with HazelCast (distributed cache, for multiple nodes)
? (10/14) Would you like to use Maven or Gradle for building the backend? Maven
? (11/14) Which other technologies would you like to use? (Press <space> to select, <a> to toggle all, <i> to inverse selection)
? (12/14) Would you like to enable internationalization support? Yes
? Please choose the native language of the application? Chinese (Simplified)
? Please choose additional languages to install (Press <space> to select, <a> to toggle all, <i> to inverse selection)
? (13/14) Which testing frameworks would you like to use? (Press <space> to select, <a> to toggle all, <i> to inverse selection)Gatling

Installing languages: zh-cn for server
   create README.md
   create .gitignore
   create .gitattributes
   create .editorconfig
   create .travis.yml
   create Jenkinsfile
   create src\main\docker\Dockerfile
   create src\main\docker\app.yml
   create src\main\docker\mysql.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.ym
   create src\main\docker\sonar.yml
   create mvnw
   create mvnw.cmd
   create .mvn\wrapper\maven-wrapper.jar
   create .mvn\wrapper\maven-wrapper.properties
   create pom.xml
   create src\main\resources\banner.txt
   create src\main\java\cn\ctodb\uaa\config\jcache\JCacheGaugeSet.java
   create src\main\resources\templates\error.html
   create src\main\resources\logback-spring.xml
   create src\main\resources\config\application.yml
   create src\main\resources\config\application-dev.yml
   create src\main\resources\config\application-prod.yml
   create src\main\resources\config\liquibase\changelog\00000000000000_initial_
   create src\main\resources\config\liquibase\master.xml
   create src\main\resources\i18n\messages.properties
   create src\main\java\cn\ctodb\uaa\security\SpringSecurityAuditorAware.java
   create src\main\java\cn\ctodb\uaa\security\SecurityUtils.java
   create src\main\java\cn\ctodb\uaa\security\AuthoritiesConstants.java
   create src\main\java\cn\ctodb\uaa\config\UaaWebSecurityConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\UaaConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\LoadBalancedResourceDetails.java
   create src\main\java\cn\ctodb\uaa\security\Http401UnauthorizedEntryPoint.jav
   create src\main\java\cn\ctodb\uaa\security\UserDetailsService.java
   create src\main\java\cn\ctodb\uaa\security\UserNotActivatedException.java
   create src\main\java\cn\ctodb\uaa\security\package-info.java
   create src\main\resources\config\bootstrap.yml
   create src\main\resources\config\bootstrap-dev.yml
   create src\main\resources\config\bootstrap-prod.yml
   create src\main\java\cn\ctodb\uaa\config\metrics\SpectatorLogMetricWriter.ja
   create src\main\java\cn\ctodb\uaa\UaaApp.java
   create src\main\java\cn\ctodb\uaa\ApplicationWebXml.java
   create src\main\java\cn\ctodb\uaa\aop\logging\LoggingAspect.java
   create src\main\java\cn\ctodb\uaa\config\DefaultProfileUtil.java
   create src\main\java\cn\ctodb\uaa\config\apidoc\package-info.java
   create src\main\java\cn\ctodb\uaa\config\apidoc\SwaggerConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\apidoc\PageableParameterBuilderPlug
   create src\main\java\cn\ctodb\uaa\async\package-info.java
   create src\main\java\cn\ctodb\uaa\async\ExceptionHandlingAsyncTaskExecutor.j
   create src\main\java\cn\ctodb\uaa\config\package-info.java
   create src\main\java\cn\ctodb\uaa\config\AsyncConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\CacheConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\Constants.java
   create src\main\java\cn\ctodb\uaa\config\DateTimeFormatConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\LoggingConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\CloudDatabaseConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\DatabaseConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\audit\package-info.java
   create src\main\java\cn\ctodb\uaa\config\audit\AuditEventConverter.java
   create src\main\java\cn\ctodb\uaa\config\JHipsterProperties.java
   create src\main\java\cn\ctodb\uaa\config\LocaleConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\LoggingAspectConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\MetricsConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\ThymeleafConfiguration.java
   create src\main\java\cn\ctodb\uaa\config\WebConfigurer.java
   create src\main\java\cn\ctodb\uaa\config\locale\package-info.java
   create src\main\java\cn\ctodb\uaa\config\locale\AngularCookieLocaleResolver.
   create src\main\java\cn\ctodb\uaa\config\liquibase\AsyncSpringLiquibase.java
   create src\main\java\cn\ctodb\uaa\config\liquibase\package-info.java
   create src\main\java\cn\ctodb\uaa\domain\package-info.java
   create src\main\java\cn\ctodb\uaa\domain\util\JSR310DateConverters.java
   create src\main\java\cn\ctodb\uaa\domain\util\FixedH2Dialect.java
   create src\main\java\cn\ctodb\uaa\domain\AbstractAuditingEntity.java
   create src\main\java\cn\ctodb\uaa\domain\PersistentAuditEvent.java
   create src\main\java\cn\ctodb\uaa\repository\package-info.java
   create src\main\java\cn\ctodb\uaa\service\package-info.java
   create src\main\java\cn\ctodb\uaa\service\util\RandomUtil.java
   create src\main\java\cn\ctodb\uaa\web\rest\errors\ErrorConstants.java
   create src\main\java\cn\ctodb\uaa\web\rest\errors\CustomParameterizedExcepti
   create src\main\java\cn\ctodb\uaa\web\rest\errors\ErrorVM.java
   create src\main\java\cn\ctodb\uaa\web\rest\errors\ExceptionTranslator.java
   create src\main\java\cn\ctodb\uaa\web\rest\errors\FieldErrorVM.java
   create src\main\java\cn\ctodb\uaa\web\rest\errors\ParameterizedErrorVM.java
   create src\main\java\cn\ctodb\uaa\web\filter\package-info.java
   create src\main\java\cn\ctodb\uaa\web\filter\CachingHttpHeadersFilter.java
   create src\main\java\cn\ctodb\uaa\web\rest\vm\package-info.java
   create src\main\java\cn\ctodb\uaa\web\rest\vm\LoggerVM.java
   create src\main\java\cn\ctodb\uaa\web\rest\util\HeaderUtil.java
   create src\main\java\cn\ctodb\uaa\web\rest\util\PaginationUtil.java
   create src\main\java\cn\ctodb\uaa\web\rest\package-info.java
   create src\main\java\cn\ctodb\uaa\web\rest\LogsResource.java
   create src\main\java\cn\ctodb\uaa\web\rest\ProfileInfoResource.java
   create src\test\java\cn\ctodb\uaa\web\rest\TestUtil.java
   create src\test\resources\config\application.yml
   create src\test\resources\logback-test.xml
   create src\test\resources\config\bootstrap.yml
   create src\test\java\cn\ctodb\uaa\security\OAuth2TokenMockUtil.java
   create src\test\java\cn\ctodb\uaa\config\SecurityBeanOverrideConfiguration.j
   create src\test\gatling\conf\gatling.conf
   create src\test\gatling\conf\logback.xml
   create src\main\resources\config\liquibase\users.csv
   create src\main\resources\config\liquibase\authorities.csv
   create src\main\resources\config\liquibase\users_authorities.csv
   create src\main\resources\mails\activationEmail.html
   create src\main\resources\mails\creationEmail.html
   create src\main\resources\mails\passwordResetEmail.html
   create src\main\java\cn\ctodb\uaa\domain\User.java
   create src\main\java\cn\ctodb\uaa\domain\Authority.java
   create src\main\java\cn\ctodb\uaa\repository\CustomAuditEventRepository.java
   create src\main\java\cn\ctodb\uaa\repository\AuthorityRepository.java
   create src\main\java\cn\ctodb\uaa\repository\PersistenceAuditEventRepository
   create src\main\java\cn\ctodb\uaa\repository\UserRepository.java
   create src\main\java\cn\ctodb\uaa\service\UserService.java
   create src\main\java\cn\ctodb\uaa\service\MailService.java
   create src\main\java\cn\ctodb\uaa\service\AuditEventService.java
   create src\main\java\cn\ctodb\uaa\service\dto\package-info.java
   create src\main\java\cn\ctodb\uaa\service\dto\UserDTO.java
   create src\main\java\cn\ctodb\uaa\web\rest\vm\ManagedUserVM.java
   create src\main\java\cn\ctodb\uaa\web\rest\UserResource.java
   create src\main\java\cn\ctodb\uaa\web\rest\AccountResource.java
   create src\main\java\cn\ctodb\uaa\web\rest\vm\KeyAndPasswordVM.java
   create src\main\java\cn\ctodb\uaa\service\mapper\package-info.java
   create src\main\java\cn\ctodb\uaa\service\mapper\UserMapper.java
   create src\main\java\cn\ctodb\uaa\web\rest\AuditResource.java
   create src\test\java\cn\ctodb\uaa\service\UserServiceIntTest.java
   create src\test\java\cn\ctodb\uaa\web\rest\UserResourceIntTest.java
   create src\test\java\cn\ctodb\uaa\web\rest\AccountResourceIntTest.java
   create src\test\java\cn\ctodb\uaa\security\SecurityUtilsUnitTest.java
   create src\test\java\cn\ctodb\uaa\web\rest\AuditResourceIntTest.java
   create src\main\resources\i18n\messages_zh_cn.properties

Server app generated successfully.


KeyStore 'src/main/resources/keystore.jks' generated successfully.

修改里面的application-dev.yml配置

  • mysql 連接的配置
  • eureka 服務(wù)的配置劲赠,改為jHipster registry服務(wù)的地址。同時(shí)還需要修改bootstrap-dev.yml(如果都在一臺電腦啟動這個就不用變)

編譯啟動UAA

mvn clean package
java -jar target/uaa-0.0.1-SNAPSHOT.war

app(microservice)

創(chuàng)建一個微服務(wù)
操作同uaa

## 創(chuàng)建文件夾
mkdir cn.ctodb.app
cd cn.ctodb.app
yo jhipster

選項(xiàng)與uaa有差異秸谢。類型需要選擇微服務(wù)類型经磅,權(quán)限需要選擇上面創(chuàng)建的uaa路徑。詳細(xì)選擇參考下面記錄


        ██  ██    ██  ████████  ███████    ██████  ████████  ████████  ███████
        ██  ██    ██     ██     ██    ██  ██          ██     ██        ██    ██
        ██  ████████     ██     ███████    █████      ██     ██████    ███████
  ██    ██  ██    ██     ██     ██             ██     ██     ██        ██   ██
   ██████   ██    ██  ████████  ██        ██████      ██     ████████  ██    ██

                            http://jhipster.github.io

Welcome to the JHipster Generator v3.12.2
Documentation for creating an application: https://jhipster.github.io/creating-an-app/
Application files will be generated in folder: C:\ws\ctodb-msp\cn.ctodb.app
? (1/14) Which *type* of application would you like to create? Microservice application
? (2/14) What is the base name of your application? app
? (3/14) Would you like to install other generators from the JHipster Market Place? No
? (3/14) As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts. 8081
? (4/14) What is your default Java package name? cn.ctodb.app
? (5/14) Which *type* of authentication would you like to use? [BETA] Authentication with JHipster UAA server (the server must be generated separately)
? (6/14) What is the folder path of your UAA application?. ../cn.ctodb.uaa
? (7/14) Which Service Discovery and Configuration solution would you like to use? JHipster Registry (using Eureka and Spring Cloud Config)
? (8/14) Which *type* of database would you like to use? SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle)
? (9/14) Which *production* database would you like to use? MySQL
? (10/14) Which *development* database would you like to use? MySQL
? (11/14) Do you want to use Hibernate 2nd level cache? Yes, with HazelCast (distributed cache, for multiple nodes)
? (12/14) Would you like to use Maven or Gradle for building the backend? Maven
? (13/14) Which other technologies would you like to use? (Press <space> to select, <a> to toggle all, <i> to inverse selection)
? (14/14) Would you like to enable internationalization support? Yes
? Please choose the native language of the application? Chinese (Simplified)
? Please choose additional languages to install (Press <space> to select, <a> to toggle all, <i> to inverse selection)
? (15/14) Which testing frameworks would you like to use? (Press <space> to select, <a> to toggle all, <i> to inverse selection)Gatling

Installing languages: zh-cn for server
   create README.md
   create .gitignore
   create .gitattributes
   create .editorconfig
   create .travis.yml
   create Jenkinsfile
   create src\main\docker\Dockerfile
   create src\main\docker\app.yml
   create src\main\docker\mysql.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\docker\sonar.yml
   create mvnw
   create mvnw.cmd
   create .mvn\wrapper\maven-wrapper.jar
   create .mvn\wrapper\maven-wrapper.properties
   create pom.xml
   create src\main\resources\banner.txt
   create src\main\java\cn\ctodb\app\config\jcache\JCacheGaugeSet.java
   create src\main\resources\templates\error.html
   create src\main\resources\logback-spring.xml
   create src\main\resources\config\application.yml
   create src\main\resources\config\application-dev.yml
   create src\main\resources\config\application-prod.yml
   create src\main\resources\config\liquibase\changelog\00000000000000_initial_schema.xml
   create src\main\resources\config\liquibase\master.xml
   create src\main\resources\i18n\messages.properties
   create src\main\java\cn\ctodb\app\security\SpringSecurityAuditorAware.java
   create src\main\java\cn\ctodb\app\security\SecurityUtils.java
   create src\main\java\cn\ctodb\app\security\AuthoritiesConstants.java
   create src\main\java\cn\ctodb\app\config\MicroserviceSecurityConfiguration.java
   create src\main\java\cn\ctodb\app\config\LoadBalancedResourceDetails.java
   create src\main\java\cn\ctodb\app\config\FeignConfiguration.java
   create src\main\java\cn\ctodb\app\client\AuthorizedFeignClient.java
   create src\main\java\cn\ctodb\app\client\OAuth2InterceptedFeignConfiguration.java
   create src\main\resources\config\bootstrap.yml
   create src\main\resources\config\bootstrap-dev.yml
   create src\main\resources\config\bootstrap-prod.yml
   create src\main\java\cn\ctodb\app\config\metrics\SpectatorLogMetricWriter.java
   create src\main\java\cn\ctodb\app\AppApp.java
   create src\main\java\cn\ctodb\app\ApplicationWebXml.java
   create src\main\java\cn\ctodb\app\aop\logging\LoggingAspect.java
   create src\main\java\cn\ctodb\app\config\DefaultProfileUtil.java
   create src\main\java\cn\ctodb\app\config\apidoc\package-info.java
   create src\main\java\cn\ctodb\app\config\apidoc\SwaggerConfiguration.java
   create src\main\java\cn\ctodb\app\config\apidoc\PageableParameterBuilderPlugin.java
   create src\main\java\cn\ctodb\app\async\package-info.java
   create src\main\java\cn\ctodb\app\async\ExceptionHandlingAsyncTaskExecutor.java
   create src\main\java\cn\ctodb\app\config\package-info.java
   create src\main\java\cn\ctodb\app\config\AsyncConfiguration.java
   create src\main\java\cn\ctodb\app\config\CacheConfiguration.java
   create src\main\java\cn\ctodb\app\config\Constants.java
   create src\main\java\cn\ctodb\app\config\DateTimeFormatConfiguration.java
   create src\main\java\cn\ctodb\app\config\LoggingConfiguration.java
   create src\main\java\cn\ctodb\app\config\CloudDatabaseConfiguration.java
   create src\main\java\cn\ctodb\app\config\DatabaseConfiguration.java
   create src\main\java\cn\ctodb\app\config\audit\package-info.java
   create src\main\java\cn\ctodb\app\config\audit\AuditEventConverter.java
   create src\main\java\cn\ctodb\app\config\JHipsterProperties.java
   create src\main\java\cn\ctodb\app\config\LocaleConfiguration.java
   create src\main\java\cn\ctodb\app\config\LoggingAspectConfiguration.java
   create src\main\java\cn\ctodb\app\config\MetricsConfiguration.java
   create src\main\java\cn\ctodb\app\config\ThymeleafConfiguration.java
   create src\main\java\cn\ctodb\app\config\WebConfigurer.java
   create src\main\java\cn\ctodb\app\config\locale\package-info.java
   create src\main\java\cn\ctodb\app\config\locale\AngularCookieLocaleResolver.java
   create src\main\java\cn\ctodb\app\config\liquibase\AsyncSpringLiquibase.java
   create src\main\java\cn\ctodb\app\config\liquibase\package-info.java
   create src\main\java\cn\ctodb\app\domain\package-info.java
   create src\main\java\cn\ctodb\app\domain\util\JSR310DateConverters.java
   create src\main\java\cn\ctodb\app\domain\util\FixedH2Dialect.java
   create src\main\java\cn\ctodb\app\domain\AbstractAuditingEntity.java
   create src\main\java\cn\ctodb\app\domain\PersistentAuditEvent.java
   create src\main\java\cn\ctodb\app\repository\package-info.java
   create src\main\java\cn\ctodb\app\service\package-info.java
   create src\main\java\cn\ctodb\app\web\rest\errors\ErrorConstants.java
   create src\main\java\cn\ctodb\app\web\rest\errors\CustomParameterizedException.java
   create src\main\java\cn\ctodb\app\web\rest\errors\ErrorVM.java
   create src\main\java\cn\ctodb\app\web\rest\errors\ExceptionTranslator.java
   create src\main\java\cn\ctodb\app\web\rest\errors\FieldErrorVM.java
   create src\main\java\cn\ctodb\app\web\rest\errors\ParameterizedErrorVM.java
   create src\main\java\cn\ctodb\app\web\filter\package-info.java
   create src\main\java\cn\ctodb\app\web\filter\CachingHttpHeadersFilter.java
   create src\main\java\cn\ctodb\app\web\rest\vm\package-info.java
   create src\main\java\cn\ctodb\app\web\rest\vm\LoggerVM.java
   create src\main\java\cn\ctodb\app\web\rest\util\HeaderUtil.java
   create src\main\java\cn\ctodb\app\web\rest\util\PaginationUtil.java
   create src\main\java\cn\ctodb\app\web\rest\package-info.java
   create src\main\java\cn\ctodb\app\web\rest\LogsResource.java
   create src\main\java\cn\ctodb\app\web\rest\ProfileInfoResource.java
   create src\test\java\cn\ctodb\app\web\rest\TestUtil.java
   create src\test\resources\config\application.yml
   create src\test\resources\logback-test.xml
   create src\test\resources\config\bootstrap.yml
   create src\test\java\cn\ctodb\app\security\OAuth2TokenMockUtil.java
   create src\test\java\cn\ctodb\app\config\SecurityBeanOverrideConfiguration.java
   create src\test\gatling\conf\gatling.conf
   create src\test\gatling\conf\logback.xml
   create src\main\resources\i18n\messages_zh_cn.properties

Server app generated successfully.

同樣還需要修改數(shù)據(jù)庫配置钮追,然后啟動項(xiàng)目(參考uaa)

gateway

創(chuàng)建一個網(wǎng)關(guān)预厌,用來做為所有請求的入口
操作同uaa

## 創(chuàng)建文件夾
mkdir cn.ctodb.app
cd cn.ctodb.app
yo jhipster

選項(xiàng)與uaa ,app 有差異。類型需要選擇網(wǎng)關(guān)類型元媚,權(quán)限需要選擇上面創(chuàng)建的uaa路徑轧叽。同時(shí)生成的項(xiàng)目文件包含了頁面苗沧。詳細(xì)選擇參考下面記錄


        ██  ██    ██  ████████  ███████    ██████  ████████  ████████  ███████
        ██  ██    ██     ██     ██    ██  ██          ██     ██        ██    ██
        ██  ████████     ██     ███████    █████      ██     ██████    ███████
  ██    ██  ██    ██     ██     ██             ██     ██     ██        ██   ██
   ██████   ██    ██  ████████  ██        ██████      ██     ████████  ██    ██

                            http://jhipster.github.io

Welcome to the JHipster Generator v3.12.2
Documentation for creating an application: https://jhipster.github.io/creating-an-app/
Application files will be generated in folder: C:\ws\ctodb-msp\gateway
? (1/14) Which *type* of application would you like to create? Microservice gateway
? (2/14) What is the base name of your application? gateway
? (3/14) Would you like to install other generators from the JHipster Market Place? No
? (3/14) As you are running in a microservice architecture, on which port would like your server to run? It should be unique to avoid port conflicts. 8080
? (4/14) What is your default Java package name? cn.ctodb.gateway
? (5/14) Which *type* of authentication would you like to use? [BETA] Authentication with JHipster UAA server (the server must be generated separately)
? (6/14) What is the folder path of your UAA application?. ../cn.ctodb.uaa
? (7/14) Which Service Discovery and Configuration solution would you like to use? JHipster Registry (using Eureka and Spring Cloud Config)
? (8/14) Which *type* of database would you like to use? SQL (H2, MySQL, MariaDB, PostgreSQL, Oracle, MSSQL)
? (9/14) Which *production* database would you like to use? MySQL
? (10/14) Which *development* database would you like to use? MySQL
? (11/14) Do you want to use Hibernate 2nd level cache? Yes, with HazelCast (distributed cache, for multiple nodes)
? (12/14) Would you like to use Maven or Gradle for building the backend? Maven
? (13/14) Which other technologies would you like to use? (Press <space> to select, <a> to toggle all, <i> to inverse selection)
? (14/14) Would you like to use the LibSass stylesheet preprocessor for your CSS? No
? (15/14) Would you like to enable internationalization support? Yes
? Please choose the native language of the application? Chinese (Simplified)
? Please choose additional languages to install (Press <space> to select, <a> to toggle all, <i> to inverse selection)
? (16/14) Which testing frameworks would you like to use? (Press <space> to select, <a> to toggle all, <i> to inverse selection)Gatling

Installing languages: zh-cn
   create bower.json
   create package.json
   create README.md
   create .gitignore
   create .gitattributes
   create .editorconfig
   create .travis.yml
   create Jenkinsfile
   create src\main\docker\Dockerfile
   create src\main\docker\app.yml
   create src\main\docker\mysql.yml
   create src\main\docker\cassandra.yml
   create src\main\docker\cassandra-cluster.yml
   create src\main\docker\cassandra-migration.yml
   create src\main\docker\cassandra\Cassandra-Migration.Dockerfile
   create src\main\docker\cassandra\scripts\autoMigrate.sh
   create src\main\docker\cassandra\scripts\execute-cql.sh
   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\docker\sonar.yml
   create mvnw
   create mvnw.cmd
   create .mvn\wrapper\maven-wrapper.jar
   create .mvn\wrapper\maven-wrapper.properties
   create pom.xml
   create src\main\resources\banner.txt
   create src\main\java\cn\ctodb\gateway\config\jcache\JCacheGaugeSet.java
   create src\main\resources\templates\error.html
   create src\main\resources\logback-spring.xml
   create src\main\resources\config\application.yml
   create src\main\resources\config\application-dev.yml
   create src\main\resources\config\application-prod.yml
   create src\main\resources\config\liquibase\changelog\00000000000000_initial_schema.xml
   create src\main\resources\config\liquibase\master.xml
   create src\main\resources\config\cql\create-keyspace-prod.cql
   create src\main\resources\config\cql\create-keyspace.cql
   create src\main\resources\config\cql\drop-keyspace.cql
   create src\main\resources\config\cql\changelog\README.md
   create src\main\resources\i18n\messages.properties
   create src\main\java\cn\ctodb\gateway\security\SpringSecurityAuditorAware.java
   create src\main\java\cn\ctodb\gateway\security\SecurityUtils.java
   create src\main\java\cn\ctodb\gateway\security\AuthoritiesConstants.java
   create src\main\java\cn\ctodb\gateway\config\GatewayConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\apidoc\GatewaySwaggerResourcesProvider.java
   create src\main\java\cn\ctodb\gateway\gateway\ratelimiting\RateLimitingFilter.java
   create src\main\java\cn\ctodb\gateway\gateway\TokenRelayFilter.java
   create src\main\java\cn\ctodb\gateway\gateway\ratelimiting\RateLimitingRepository.java
   create src\main\java\cn\ctodb\gateway\gateway\accesscontrol\AccessControlFilter.java
   create src\main\java\cn\ctodb\gateway\gateway\responserewriting\SwaggerBasePathRewritingFilter.java
   create src\main\java\cn\ctodb\gateway\web\rest\vm\RouteVM.java
   create src\main\java\cn\ctodb\gateway\web\rest\GatewayResource.java
   create src\main\java\cn\ctodb\gateway\config\MicroserviceSecurityConfiguration.java
   create src\main\resources\config\bootstrap.yml
   create src\main\resources\config\bootstrap-dev.yml
   create src\main\resources\config\bootstrap-prod.yml
   create src\main\java\cn\ctodb\gateway\config\metrics\SpectatorLogMetricWriter.java
   create src\main\java\cn\ctodb\gateway\GatewayApp.java
   create src\main\java\cn\ctodb\gateway\ApplicationWebXml.java
   create src\main\java\cn\ctodb\gateway\aop\logging\LoggingAspect.java
   create src\main\java\cn\ctodb\gateway\config\DefaultProfileUtil.java
   create src\main\java\cn\ctodb\gateway\config\apidoc\package-info.java
   create src\main\java\cn\ctodb\gateway\config\apidoc\SwaggerConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\apidoc\PageableParameterBuilderPlugin.java
   create src\main\java\cn\ctodb\gateway\async\package-info.java
   create src\main\java\cn\ctodb\gateway\async\ExceptionHandlingAsyncTaskExecutor.java
   create src\main\java\cn\ctodb\gateway\config\package-info.java
   create src\main\java\cn\ctodb\gateway\config\AsyncConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\CacheConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\Constants.java
   create src\main\java\cn\ctodb\gateway\config\DateTimeFormatConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\LoggingConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\CloudDatabaseConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\DatabaseConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\audit\package-info.java
   create src\main\java\cn\ctodb\gateway\config\audit\AuditEventConverter.java
   create src\main\java\cn\ctodb\gateway\config\JHipsterProperties.java
   create src\main\java\cn\ctodb\gateway\config\LocaleConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\LoggingAspectConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\MetricsConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\ThymeleafConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\WebConfigurer.java
   create src\main\java\cn\ctodb\gateway\config\locale\package-info.java
   create src\main\java\cn\ctodb\gateway\config\locale\AngularCookieLocaleResolver.java
   create src\main\java\cn\ctodb\gateway\config\cassandra\CassandraConfiguration.java
   create src\main\java\cn\ctodb\gateway\config\cassandra\CustomZonedDateTimeCodec.java
   create src\main\java\cn\ctodb\gateway\config\cassandra\package-info.java
   create src\main\java\cn\ctodb\gateway\config\liquibase\AsyncSpringLiquibase.java
   create src\main\java\cn\ctodb\gateway\config\liquibase\package-info.java
   create src\main\java\cn\ctodb\gateway\domain\package-info.java
   create src\main\java\cn\ctodb\gateway\domain\util\JSR310DateConverters.java
   create src\main\java\cn\ctodb\gateway\domain\util\FixedH2Dialect.java
   create src\main\java\cn\ctodb\gateway\domain\AbstractAuditingEntity.java
   create src\main\java\cn\ctodb\gateway\domain\PersistentAuditEvent.java
   create src\main\java\cn\ctodb\gateway\repository\package-info.java
   create src\main\java\cn\ctodb\gateway\service\package-info.java
   create src\main\java\cn\ctodb\gateway\web\rest\errors\ErrorConstants.java
   create src\main\java\cn\ctodb\gateway\web\rest\errors\CustomParameterizedException.java
   create src\main\java\cn\ctodb\gateway\web\rest\errors\ErrorVM.java
   create src\main\java\cn\ctodb\gateway\web\rest\errors\ExceptionTranslator.java
   create src\main\java\cn\ctodb\gateway\web\rest\errors\FieldErrorVM.java
   create src\main\java\cn\ctodb\gateway\web\rest\errors\ParameterizedErrorVM.java
   create src\main\java\cn\ctodb\gateway\web\filter\package-info.java
   create src\main\java\cn\ctodb\gateway\web\filter\CachingHttpHeadersFilter.java
   create src\main\java\cn\ctodb\gateway\web\rest\vm\package-info.java
   create src\main\java\cn\ctodb\gateway\web\rest\vm\LoggerVM.java
   create src\main\java\cn\ctodb\gateway\web\rest\util\HeaderUtil.java
   create src\main\java\cn\ctodb\gateway\web\rest\util\PaginationUtil.java
   create src\main\java\cn\ctodb\gateway\web\rest\package-info.java
   create src\main\java\cn\ctodb\gateway\web\rest\LogsResource.java
   create src\main\java\cn\ctodb\gateway\web\rest\ProfileInfoResource.java
   create src\test\java\cn\ctodb\gateway\web\rest\TestUtil.java
   create src\test\resources\config\application.yml
   create src\test\resources\logback-test.xml
   create src\test\java\cn\ctodb\gateway\gateway\responserewriting\SwaggerBasePathRewritingFilterTest.java
   create src\test\resources\config\bootstrap.yml
   create src\test\java\cn\ctodb\gateway\security\OAuth2TokenMockUtil.java
   create src\test\java\cn\ctodb\gateway\config\SecurityBeanOverrideConfiguration.java
   create src\test\gatling\conf\gatling.conf
   create src\test\gatling\conf\logback.xml
   create .bowerrc
   create .eslintrc.json
   create .eslintignore
   create gulpfile.js
   create gulp\handle-errors.js
   create gulp\utils.js
   create gulp\serve.js
   create gulp\config.js
   create gulp\build.js
   create gulp\copy.js
   create gulp\inject.js
   create src\main\webapp\content\css\main.css
   create src\main\webapp\content\css\documentation.css
   create src\main\webapp\favicon.ico
   create src\main\webapp\robots.txt
   create src\main\webapp\404.html
   create src\main\webapp\swagger-ui\index.html
   create src\main\webapp\swagger-ui\images\throbber.gif
   create src\main\webapp\index.html
   create src\main\webapp\app\app.module.js
   create src\main\webapp\app\app.state.js
   create src\main\webapp\app\app.constants.js
   create src\main\webapp\app\blocks\handlers\state.handler.js
   create src\main\webapp\app\blocks\handlers\translation.handler.js
   create src\main\webapp\app\blocks\config\translation.config.js
   create src\main\webapp\app\blocks\config\translation-storage.provider.js
   create src\main\webapp\app\blocks\config\alert.config.js
   create src\main\webapp\app\blocks\config\http.config.js
   create src\main\webapp\app\blocks\config\localstorage.config.js
   create src\main\webapp\app\blocks\config\compile.config.js
   create src\main\webapp\app\blocks\config\uib-pager.config.js
   create src\main\webapp\app\blocks\config\uib-pagination.config.js
   create src\main\webapp\app\account\account.state.js
   create src\main\webapp\app\account\activate\activate.html
   create src\main\webapp\app\account\activate\activate.state.js
   create src\main\webapp\app\account\activate\activate.controller.js
   create src\main\webapp\app\account\password\password.html
   create src\main\webapp\app\account\password\password.state.js
   create src\main\webapp\app\account\password\password.controller.js
   create src\main\webapp\app\account\password\password-strength-bar.directive.js
   create src\main\webapp\app\account\register\register.html
   create src\main\webapp\app\account\register\register.state.js
   create src\main\webapp\app\account\register\register.controller.js
   create src\main\webapp\app\account\reset\request\reset.request.html
   create src\main\webapp\app\account\reset\request\reset.request.state.js
   create src\main\webapp\app\account\reset\request\reset.request.controller.js
   create src\main\webapp\app\account\reset\finish\reset.finish.html
   create src\main\webapp\app\account\reset\finish\reset.finish.state.js
   create src\main\webapp\app\account\reset\finish\reset.finish.controller.js
   create src\main\webapp\app\account\settings\settings.html
   create src\main\webapp\app\account\settings\settings.state.js
   create src\main\webapp\app\account\settings\settings.controller.js
   create src\main\webapp\app\admin\admin.state.js
   create src\main\webapp\app\admin\audits\audits.html
   create src\main\webapp\app\admin\audits\audits.state.js
   create src\main\webapp\app\admin\audits\audits.controller.js
   create src\main\webapp\app\admin\audits\audits.service.js
   create src\main\webapp\app\admin\configuration\configuration.html
   create src\main\webapp\app\admin\configuration\configuration.state.js
   create src\main\webapp\app\admin\configuration\configuration.controller.js
   create src\main\webapp\app\admin\configuration\configuration.service.js
   create src\main\webapp\app\admin\docs\docs.html
   create src\main\webapp\app\admin\docs\docs.state.js
   create src\main\webapp\app\admin\health\health.html
   create src\main\webapp\app\admin\health\health.modal.html
   create src\main\webapp\app\admin\health\health.state.js
   create src\main\webapp\app\admin\health\health.controller.js
   create src\main\webapp\app\admin\health\health.modal.controller.js
   create src\main\webapp\app\admin\health\health.service.js
   create src\main\webapp\app\admin\logs\logs.html
   create src\main\webapp\app\admin\logs\logs.state.js
   create src\main\webapp\app\admin\logs\logs.controller.js
   create src\main\webapp\app\admin\logs\logs.service.js
   create src\main\webapp\app\admin\metrics\metrics.html
   create src\main\webapp\app\admin\metrics\metrics.modal.html
   create src\main\webapp\app\admin\metrics\metrics.state.js
   create src\main\webapp\app\admin\metrics\metrics.controller.js
   create src\main\webapp\app\admin\metrics\metrics.modal.controller.js
   create src\main\webapp\app\admin\metrics\metrics.service.js
   create src\main\webapp\app\admin\user-management\user-management.html
   create src\main\webapp\app\admin\user-management\user-management-detail.html
   create src\main\webapp\app\admin\user-management\user-management-dialog.html
   create src\main\webapp\app\admin\user-management\user-management-delete-dialog.html
   create src\main\webapp\app\admin\user-management\user-management.state.js
   create src\main\webapp\app\admin\user-management\user-management.controller.js
   create src\main\webapp\app\admin\user-management\user-management-detail.controller.js
   create src\main\webapp\app\admin\user-management\user-management-dialog.controller.js
   create src\main\webapp\app\admin\user-management\user-management-delete-dialog.controller.js
   create src\main\webapp\app\admin\gateway\gateway.html
   create src\main\webapp\app\admin\gateway\gateway.state.js
   create src\main\webapp\app\admin\gateway\gateway.controller.js
   create src\main\webapp\app\admin\gateway\gateway.routes.service.js
   create src\main\webapp\app\components\form\show-validation.directive.js
   create src\main\webapp\app\components\form\maxbytes.directive.js
   create src\main\webapp\app\components\form\minbytes.directive.js
   create src\main\webapp\app\components\form\pagination.constants.js
   create src\main\webapp\app\components\language\language.filter.js
   create src\main\webapp\app\components\language\language.constants.js
   create src\main\webapp\app\components\language\language.controller.js
   create src\main\webapp\app\components\language\language.service.js
   create src\main\webapp\app\components\login\login.html
   create src\main\webapp\app\components\login\login.service.js
   create src\main\webapp\app\components\login\login.controller.js
   create src\main\webapp\app\components\util\base64.service.js
   create src\main\webapp\app\components\util\capitalize.filter.js
   create src\main\webapp\app\components\util\parse-links.service.js
   create src\main\webapp\app\components\util\truncate-characters.filter.js
   create src\main\webapp\app\components\util\truncate-words.filter.js
   create src\main\webapp\app\components\util\date-util.service.js
   create src\main\webapp\app\components\util\data-util.service.js
   create src\main\webapp\app\components\util\pagination-util.service.js
   create src\main\webapp\app\components\util\sort.directive.js
   create src\main\webapp\app\components\util\sort-by.directive.js
   create src\main\webapp\app\components\util\jhi-item-count.directive.js
   create src\main\webapp\app\blocks\interceptor\auth.interceptor.js
   create src\main\webapp\app\blocks\interceptor\auth-expired.interceptor.js
   create src\main\webapp\app\blocks\interceptor\errorhandler.interceptor.js
   create src\main\webapp\app\blocks\interceptor\notification.interceptor.js
   create src\main\webapp\app\components\alert\alert.service.js
   create src\main\webapp\app\components\alert\alert.directive.js
   create src\main\webapp\app\components\alert\alert-error.directive.js
   create src\main\webapp\app\entities\entity.state.js
   create src\main\webapp\app\home\home.html
   create src\main\webapp\app\home\home.state.js
   create src\main\webapp\app\home\home.controller.js
   create src\main\webapp\app\layouts\navbar\active-menu.directive.js
   create src\main\webapp\app\layouts\navbar\navbar.html
   create src\main\webapp\app\layouts\navbar\navbar.controller.js
   create src\main\webapp\app\layouts\error\error.html
   create src\main\webapp\app\layouts\error\accessdenied.html
   create src\main\webapp\app\layouts\error\error.state.js
   create src\main\webapp\app\services\auth\auth.service.js
   create src\main\webapp\app\services\auth\principal.service.js
   create src\main\webapp\app\services\auth\has-authority.directive.js
   create src\main\webapp\app\services\auth\has-any-authority.directive.js
   create src\main\webapp\app\services\auth\auth.jwt.service.js
   create src\main\webapp\app\services\auth\account.service.js
   create src\main\webapp\app\services\auth\activate.service.js
   create src\main\webapp\app\services\auth\password.service.js
   create src\main\webapp\app\services\auth\password-reset-init.service.js
   create src\main\webapp\app\services\auth\password-reset-finish.service.js
   create src\main\webapp\app\services\auth\register.service.js
   create src\main\webapp\app\services\user\user.service.js
   create src\main\webapp\app\services\profiles\profile.service.js
   create src\main\webapp\app\services\profiles\page-ribbon.directive.js
   create src\main\webapp\content\images\hipster.png
   create src\main\webapp\content\images\hipster2x.png
   create src\main\webapp\content\images\logo-jhipster.png
   create src\test\javascript\karma.conf.js
   create src\test\javascript\spec\helpers\module.js
   create src\test\javascript\spec\helpers\httpBackend.js
   create src\test\javascript\spec\app\admin\health\health.controller.spec.js
   create src\test\javascript\spec\app\account\password\password.controller.spec.js
   create src\test\javascript\spec\app\account\password\password-strength-bar.directive.spec.js
   create src\test\javascript\spec\app\account\settings\settings.controller.spec.js
   create src\test\javascript\spec\app\account\activate\activate.controller.spec.js
   create src\test\javascript\spec\app\account\register\register.controller.spec.js
   create src\test\javascript\spec\app\account\reset\finish\reset.finish.controller.spec.js
   create src\test\javascript\spec\app\account\reset\request\reset.request.controller.spec.js
   create src\test\javascript\spec\app\services\auth\auth.services.spec.js
   create src\test\javascript\spec\app\components\login\login.controller.spec.js
   create src\main\webapp\i18n\zh-cn\activate.json
   create src\main\webapp\i18n\zh-cn\audits.json
   create src\main\webapp\i18n\zh-cn\configuration.json
   create src\main\webapp\i18n\zh-cn\error.json
   create src\main\webapp\i18n\zh-cn\gateway.json
   create src\main\webapp\i18n\zh-cn\login.json
   create src\main\webapp\i18n\zh-cn\logs.json
   create src\main\webapp\i18n\zh-cn\home.json
   create src\main\webapp\i18n\zh-cn\metrics.json
   create src\main\webapp\i18n\zh-cn\password.json
   create src\main\webapp\i18n\zh-cn\register.json
   create src\main\webapp\i18n\zh-cn\sessions.json
   create src\main\webapp\i18n\zh-cn\settings.json
   create src\main\webapp\i18n\zh-cn\reset.json
   create src\main\webapp\i18n\zh-cn\user-management.json
   create src\main\webapp\i18n\zh-cn\global.json
   create src\main\webapp\i18n\zh-cn\health.json
   create src\main\resources\i18n\messages_zh_cn.properties


I'm all done. Running npm install && bower install for you to install the required dependencies. If this fails, try running the command yourself.

同樣需要修改配置并啟動項(xiàng)目

Paste_Image.png

可以比對一下jHipster的非微服務(wù)的項(xiàng)目。
可以看出管理里面多了些菜單炭晒。

傳送門CTO智庫 - JHipster用戶指南

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末待逞,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子网严,更是在濱河造成了極大的恐慌识樱,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件震束,死亡現(xiàn)場離奇詭異怜庸,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)垢村,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進(jìn)店門割疾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嘉栓,你說我怎么就攤上這事宏榕。” “怎么了侵佃?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵麻昼,是天一觀的道長。 經(jīng)常有香客問我馋辈,道長抚芦,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任首有,我火速辦了婚禮燕垃,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘井联。我一直安慰自己卜壕,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布烙常。 她就那樣靜靜地躺著轴捎,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蚕脏。 梳的紋絲不亂的頭發(fā)上侦副,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天,我揣著相機(jī)與錄音驼鞭,去河邊找鬼秦驯。 笑死,一個胖子當(dāng)著我的面吹牛挣棕,可吹牛的內(nèi)容都是我干的译隘。 我是一名探鬼主播亲桥,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼固耘!你這毒婦竟也來了题篷?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤厅目,失蹤者是張志新(化名)和其女友劉穎番枚,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體损敷,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡葫笼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了嗤锉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渔欢。...
    茶點(diǎn)故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡墓塌,死狀恐怖瘟忱,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情苫幢,我是刑警寧澤访诱,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站韩肝,受9級特大地震影響触菜,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜哀峻,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一涡相、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧剩蟀,春花似錦催蝗、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至缰冤,卻和暖如春犬缨,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棉浸。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工怀薛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迷郑。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓枝恋,卻偏偏與公主長得像迂苛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子鼓择,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評論 2 348

推薦閱讀更多精彩內(nèi)容