jhipster

欢迎回到本JHipster教程系列! 在第一部分中,我们介绍了如何创建整体应用程序。 在第二部分中 ,我们逐步创建了一个微服务应用程序(这有点复杂)。

对于那些正在努力使JHipster正常运转的人,我想着重介绍一些设置事项和“陷阱”。 因此,对于那些决定尝试JHipster并尝试使用它的人来说,这个小博客更像是一个帮助者。 这就是我们将在此博客文章中讨论的内容,希望我能帮助您最大程度地缩短起步速度。

MySQL作为数据库。

但是我不想使用内存数据库...

因此,内存数据库非常适合进行测试和入门。 但让我们面对现实吧,内存不太可能用于生产场景。 有时,我认为应该将其完全删除。

无论如何,使用mySQL数据库非常简单,您只需对其进行配置。 真的没有太大的痛苦。

如果您在构建过程中从选择中选择了MySQL,那么大部分工作将为您完成。 您只需要插入您的信息即可。

datasource:url: jdbc:mysql://localhost:3306/your_db?useUnicode=true&characterEncoding=utf8&useSSL=falsename:username: usernamepassword: passhikari:data-source-properties:cachePrepStmts: trueprepStmtCacheSize: 250prepStmtCacheSqlLimit: 2048useServerPrepStmts: truejpa:database-platform: org.hibernate.dialect.MySQL5InnoDBDialectdatabase: MYSQLshow-sql: trueproperties:hibernate.cache.use_second_level_cache: truehibernate.cache.use_query_cache: falsehibernate.generate_statistics: truehibernate.cache.region.factory_class: com.wwc.extendedday.config.hazelcast.HazelcastCacheRegionFactoryhibernate.cache.use_minimal_puts: truehibernate.cache.hazelcast.use_lite_member: true

格林菲尔德schmeenfield…

当然,由于我们都有一个绿色的字段数据库,因此为您设置的列命名约定很好。 整理您的餐桌将变得轻而易举。

好吧,好吧,我知道,在现实世界中成为绿色应用的可能性很小。 通常,某个地方已经有一个数据库,其中的列名很好。 可能您已经有一个要重用的数据访问层,因为我们都讨厌“再次”这样做。

因此,唯一的问题是,在启动和/或尝试获取数据时,您会不断收到该列不存在的错误。 到底是什么造成了这场噩梦?

经过数小时的搜索(相信我做到了),我突然意识到我以前已经处理过这种愚蠢的行为。 默认的命名策略必须更改! 缺省值为SpringNamingStrategy并且必须更改为EJB3NamingStrategy ,该EJB3NamingStrategy将尊重具有给定(或不明确)列名的所有注释。 如果您要重用的原始代码是使用SpringNamingStrategy生成的,则只需忽略此SpringNamingStrategy ,然后继续进行即可。 否则,请在相应的application.yml文件中找到它并进行更改。

jpa:open-in-view: falsehibernate:ddl-auto: none#naming-strategy: org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategynaming-strategy: org.hibernate.cfg.EJB3NamingStrategy

在旧橡树上系一条缎带。

功能区超时

因此,您已经启动并正在运行,并且想要将数据输出到页面,但是它会一直超时! Aaarrgggghhhh !!! 您的数据太多!

因此,默认情况下,超时非常快。 但是,让我们面对现实吧,大多数客户希望所有数据都在一个呼叫中通过。 再次,我在这里为您服务!

我搜索了相当长的时间来延长超时时间。 我为此找到了正确的配置。 您可以通过多种方式来执行此操作,但是此“修复”为所有呼叫提供了更多时间。 看看这个!

eureka:instance:appname: ExtendedDayGatewayinstanceId: ExtendedDayGateway:${spring.application.instance_id:${random.value}}ribbon:eureka:enabled: truezuul:host:connect-timeout-millis: 10000socket-timeout-millis: 60000hystrix:command:default:execution:isolation:thread:timeoutInMilliseconds: 60000

您看不到,对不起...

给它一些方向。

如果您已将项目作为微服务启动并运行,但是由于未经授权的调用而无法使数据端点向您提供数据,请确保已正确设置服务。

默认情况下,生成的服务假定端点在同一项目中。 您必须花时间给正确的方向。 因此,在service文件中,您必须在调用之前添加端点API名称。 在此示例中, extendeddayapi是端点的名称。

(function() {'use strict';angular.module('extendedDayGatewayApp').factory('Students', Students);Students.$inject = ['$resource'];function Students ($resource) {var resourceUrl =  'extendeddayapi/api/students';return $resource(resourceUrl, {}, {'query': { method: 'GET', isArray: true},'get': {method: 'GET',transformResponse: function (data) {if (data) {data = angular.fromJson(data);}return data;}},'update': { method:'PUT' }});}
})();

没有存款,没有回报。

某些人可能不希望通过JHipster应用程序等使用Angular前端。如果采用这种方法,请确保将令牌传递给您正在对后端进行的所有调用。 登录后可以检索JWT令牌,并将其传递给所有后续调用。

有很多不同的方法可以做到这一点。 我将把您留在这里的设备上。 通过JHipster登录后,将生成JWT令牌。 您应该能够通过查看身份验证呼叫的响应来进行检索。 您会注意到“授权”字段及其后的值。 它将从“ Bearer”开始,然后是一个长令牌。

这是一个邮递员介绍,向您展示它的外观。 将授权值传递给它并测试您的呼叫。 这可以在您的代码中以某种方式复制,以便您可以访问应用程序内的JWT令牌。 这完全取决于您要如何进行。

仅供参考:邮差是一种工具,使您无需创建任何代码即可测试GET,POST等。

这是螺丝刀,不是锤子

这些工具可以为您提供帮助。

JHipster随附的工具箱允许您生成新实体。 您可以生成整个套件和kaboodle(正反),也可以只选择正反。 鉴于我已经准备好将后端用于新的前端,因此我尝试了前端生成器,它对您有所帮助。 该示例不包括后端代码。

yo jhipster:entity student --skip-server

生成的代码如下所示。

这是消除基础知识的好工具。 实际上,仅当您将JHipster Angular应用程序用作前端时,它才有帮助。

再见了再见

这样就结束了JHipster传奇。 我知道此助手列表很短,但对我来说却非常耗时。

继续,与大家分享

不知道从哪里开始我对JHipster的想法的概述。 考虑到真正进入该市场的机会有限,我只会给我“第一印象”。

很大…

开箱即用的东西数量很大,但还不算很多。 看到所有这些东西都是开箱即用的,不知道它在做什么,这是令人畏惧的。 尽管我喜欢拥有所有这些功能,但我觉得我没有时间学习所有功能,或者至少足够舒适地向提出要求的人解释这些功能。

我们可以换个角度...

我不是Angular的忠实粉丝。 公平地说,我没有过多地研究它。 JHipster使用Angular 1有点令人沮丧,但是Angular 2可用。 作为一个新手,我宁愿学习“未来”,也不愿停留在过去。 我知道您可以使用React JS的一种风格,但是同样,有些人可能对此表示反对。 为什么我需要JHipster为我承担前端堆栈?

启动缓慢...

我没有检查这里是否还有其他选项,但是在构建整体式或网关应用程序时,npm install和bower install非常慢。 有点关了。 我想赶紧启动该应用程序。 但是,相比之下,实际上每个应用程序只执行一次。 所以这有点折腾。

给它启动...

这是一个良好的启动。 到目前为止,我非常喜欢使用Spring Boot。 它使使用Web应用程序变得非常容易。 无需费力地将工具安装到IDE中,就可以使用所选的任何服务器。 只需启动它,它的工作就非常简单。 Spring Boot的最大缺点可能是它在运行多个线程时开始消耗内存。

诚实的反馈…

在玩了一段时间之后,我确实喜欢它的微服务方面。 对我来说,创建所有这些面向服务的应用程序似乎是一个好主意。 我不是100%出售JHipster的需求,但我愿意尝试一下。 我可能只想制作一个简单的SPA,即可提供后端,并为前端提供一些非常简单的东西,例如BackboneJS。 我决不排除Angular或React,但是这是我必须花多少时间学习新知识的一个方面。

我将尽力将现有的单片应用程序(JSF)过渡到JHipster和微服务体系结构。 也许它将提供另一个机会为每个人写我的经验博客。

感谢您抽出宝贵的时间阅读! 祝你好运!

翻译自: https://www.javacodegeeks.com/2016/10/getting-started-jhipster-part-3.html

jhipster

jhipster_JHipster入门,第3部分相关推荐

  1. jhipster_jHipster入门,第1部分

    jhipster 因此,您想保持技术的领先地位,但对所有活动部件感到不知所措. 你真幸运! 这就是jHipster发光的地方. 如果您喜欢Ruby on Rails或Grails的方法来快速启动和运行 ...

  2. jhipster_JHipster入门,第2部分

    jhipster 所以你回来了! 在本系列的最后一部分中 ,我们采用了单片路线创建了一个JHipster应用程序. 这是红色药丸路线: 生活几乎与您习惯的一样. 但是也许您喜欢挑战. 也许您想超越红色 ...

  3. 用Construct 2制作入门小游戏~

    今天在软导课上了解到了Construct 2这个神器,本零基础菜鸟决定尝试做一个简单的小游戏(实际上是入门的教程啊= = 首先呢,肯定是到官网下载软件啊,点击我下载~ 等安装完毕后我便按照新手教程开始 ...

  4. Docker入门六部曲——Swarm

    原文链接:http://www.dubby.cn/detail.html?id=8738 准备工作 安装Docker(版本最低1.13). 安装好Docker Compose,上一篇文章介绍过的. 安 ...

  5. Docker入门六部曲——Stack

    原文链接:http://www.dubby.cn/detail.html?id=8739 准备知识 安装Docker(版本最低1.13). 阅读完Docker入门六部曲--Swarm,并且完成其中介绍 ...

  6. Docker入门六部曲——服务

    原文链接:http://www.dubby.cn/detail.html?id=8735 准备 已经安装好Docker 1.13或者以上的版本. 安装好Docker Compose.如果你是用的是Do ...

  7. 【springboot】入门

    简介: springBoot是spring团队为了整合spring全家桶中的系列框架做研究出来的一个轻量级框架.随着spring4.0推出而推出,springBoot可以説是J2SEE的一站式解决方案 ...

  8. SpringBoot (一) :入门篇 Hello World

    什么是SpringBoot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不 ...

  9. 入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集-深度学习问题

    入门指南目录页 -PaddlePaddle 飞桨 入门指南 FAQ合集 GT_Zhang关注 0.1012019.08.01 18:43:34字数 1,874阅读 795 Hi,欢迎各位来自Paddl ...

最新文章

  1. php 不等待返回的实现方法(异步调用)
  2. java 约瑟夫问题 链表_【链表问题】环形单链表约瑟夫问题
  3. 微信公众号开发之微信JSSDK
  4. 常考数据结构与算法:子数组中的最大累加和问题
  5. find 按文件修改时间查找文件
  6. android 设置Button或者ImageButton的背景透明 半透明 透明
  7. nssl1477-赛【对顶堆,贪心】
  8. 哪里的mysql性能监控_mysql性能监控工具Innotop简介及配置
  9. 蓝桥杯真题训练 2019.3题
  10. dhcp只能分配与路由器相同网段么_路由器的桥接详解
  11. 【算法分析与设计】实验 回溯算法解决0-1背包问题
  12. 微信付费付费链接制作_为什么我编码但不为此付费
  13. sql语句和java的关系_java中Statement 与 PreparedStatement接口之间的关系和区别
  14. openoffice php com,nginx+php+openOffice
  15. Rust :公钥、私钥与keypair、signature、verify 三部曲
  16. excel从只有省市县的地址中分别提取省、市、县
  17. 第五章 区块链怎么玩 [25]
  18. DX12之手撸GPU Driven Pipeline
  19. 终极解决电脑缺失dll,应用程序无法正常启动0xc000007b
  20. 博弈论:零和博弈与常和博弈的区别

热门文章

  1. [SCOI2015]小凸玩矩阵 (匈牙利+二分)
  2. UOJ#84-[UR #7]水题走四方【dp】
  3. P2900-[USACO08MAR]Land AcquisitionG【斜率优化】
  4. nssl1217-So many prefix?【KMP】
  5. ssl2647-线段树练习4【线段树】
  6. SpringCloud Zuul(七)之POST Filter
  7. JavaFX UI控件教程(二十六)之Pagination Control
  8. 一文带你理解Java中Lock的实现原理
  9. 写给工程师的10条精进原则
  10. Java IO: PipedOutputStream