jhipster_JHipster入门,第3部分
jhipster
歡迎回到本JHipster教程系列! 在第一部分中,我們介紹了如何創(chuàng)建整體應(yīng)用程序。 在第二部分中 ,我們逐步創(chuàng)建了一個(gè)微服務(wù)應(yīng)用程序(這有點(diǎn)復(fù)雜)。
對于那些正在努力使JHipster正常運(yùn)轉(zhuǎn)的人,我想著重介紹一些設(shè)置事項(xiàng)和“陷阱”。 因此,對于那些決定嘗試JHipster并嘗試使用它的人來說,這個(gè)小博客更像是一個(gè)幫助者。 這就是我們將在此博客文章中討論的內(nèi)容,希望我能幫助您最大程度地縮短起步速度。
MySQL作為數(shù)據(jù)庫。
但是我不想使用內(nèi)存數(shù)據(jù)庫...
因此,內(nèi)存數(shù)據(jù)庫非常適合進(jìn)行測試和入門。 但讓我們面對現(xiàn)實(shí)吧,內(nèi)存不太可能用于生產(chǎn)場景。 有時(shí),我認(rèn)為應(yīng)該將其完全刪除。
無論如何,使用mySQL數(shù)據(jù)庫非常簡單,您只需對其進(jìn)行配置。 真的沒有太大的痛苦。
如果您在構(gòu)建過程中從選擇中選擇了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…
當(dāng)然,由于我們都有一個(gè)綠色的字段數(shù)據(jù)庫,因此為您設(shè)置的列命名約定很好。 整理您的餐桌將變得輕而易舉。
好吧,好吧,我知道,在現(xiàn)實(shí)世界中成為綠色應(yīng)用的可能性很小。 通常,某個(gè)地方已經(jīng)有一個(gè)數(shù)據(jù)庫,其中的列名很好。 可能您已經(jīng)有一個(gè)要重用的數(shù)據(jù)訪問層,因?yàn)槲覀兌加憛挕霸俅巍边@樣做。
因此,唯一的問題是,在啟動(dòng)和/或嘗試獲取數(shù)據(jù)時(shí),您會(huì)不斷收到該列不存在的錯(cuò)誤。 到底是什么造成了這場噩夢?
經(jīng)過數(shù)小時(shí)的搜索(相信我做到了),我突然意識(shí)到我以前已經(jīng)處理過這種愚蠢的行為。 默認(rèn)的命名策略必須更改! 缺省值為SpringNamingStrategy并且必須更改為EJB3NamingStrategy ,該EJB3NamingStrategy將尊重具有給定(或不明確)列名的所有注釋。 如果您要重用的原始代碼是使用SpringNamingStrategy生成的,則只需忽略此SpringNamingStrategy ,然后繼續(xù)進(jìn)行即可。 否則,請?jiān)谙鄳?yīng)的application.yml文件中找到它并進(jìn)行更改。
jpa:open-in-view: falsehibernate:ddl-auto: none#naming-strategy: org.springframework.boot.orm.jpa.hibernate.SpringNamingStrategynaming-strategy: org.hibernate.cfg.EJB3NamingStrategy在舊橡樹上系一條緞帶。
功能區(qū)超時(shí)
因此,您已經(jīng)啟動(dòng)并正在運(yùn)行,并且想要將數(shù)據(jù)輸出到頁面,但是它會(huì)一直超時(shí)! Aaarrgggghhhh !!! 您的數(shù)據(jù)太多!
因此,默認(rèn)情況下,超時(shí)非常快。 但是,讓我們面對現(xiàn)實(shí)吧,大多數(shù)客戶希望所有數(shù)據(jù)都在一個(gè)呼叫中通過。 再次,我在這里為您服務(wù)!
我搜索了相當(dāng)長的時(shí)間來延長超時(shí)時(shí)間。 我為此找到了正確的配置。 您可以通過多種方式來執(zhí)行此操作,但是此“修復(fù)”為所有呼叫提供了更多時(shí)間。 看看這個(gè)!
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您看不到,對不起...
給它一些方向。
如果您已將項(xiàng)目作為微服務(wù)啟動(dòng)并運(yùn)行,但是由于未經(jīng)授權(quán)的調(diào)用而無法使數(shù)據(jù)端點(diǎn)向您提供數(shù)據(jù),請確保已正確設(shè)置服務(wù)。
默認(rèn)情況下,生成的服務(wù)假定端點(diǎn)在同一項(xiàng)目中。 您必須花時(shí)間給正確的方向。 因此,在service文件中,您必須在調(diào)用之前添加端點(diǎn)API名稱。 在此示例中, extendeddayapi是端點(diǎn)的名稱。
(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' }});} })();沒有存款,沒有回報(bào)。
某些人可能不希望通過JHipster應(yīng)用程序等使用Angular前端。如果采用這種方法,請確保將令牌傳遞給您正在對后端進(jìn)行的所有調(diào)用。 登錄后可以檢索JWT令牌,并將其傳遞給所有后續(xù)調(diào)用。
有很多不同的方法可以做到這一點(diǎn)。 我將把您留在這里的設(shè)備上。 通過JHipster登錄后,將生成JWT令牌。 您應(yīng)該能夠通過查看身份驗(yàn)證呼叫的響應(yīng)來進(jìn)行檢索。 您會(huì)注意到“授權(quán)”字段及其后的值。 它將從“ Bearer”開始,然后是一個(gè)長令牌。
這是一個(gè)郵遞員介紹,向您展示它的外觀。 將授權(quán)值傳遞給它并測試您的呼叫。 這可以在您的代碼中以某種方式復(fù)制,以便您可以訪問應(yīng)用程序內(nèi)的JWT令牌。 這完全取決于您要如何進(jìn)行。
僅供參考:郵差是一種工具,使您無需創(chuàng)建任何代碼即可測試GET,POST等。
這是螺絲刀,不是錘子
這些工具可以為您提供幫助。
JHipster隨附的工具箱允許您生成新實(shí)體。 您可以生成整個(gè)套件和kaboodle(正反),也可以只選擇正反。 鑒于我已經(jīng)準(zhǔn)備好將后端用于新的前端,因此我嘗試了前端生成器,它對您有所幫助。 該示例不包括后端代碼。
yo jhipster:entity student --skip-server生成的代碼如下所示。
這是消除基礎(chǔ)知識(shí)的好工具。 實(shí)際上,僅當(dāng)您將JHipster Angular應(yīng)用程序用作前端時(shí),它才有幫助。
再見了再見
這樣就結(jié)束了JHipster傳奇。 我知道此助手列表很短,但對我來說卻非常耗時(shí)。
繼續(xù),與大家分享
不知道從哪里開始我對JHipster的想法的概述。 考慮到真正進(jìn)入該市場的機(jī)會(huì)有限,我只會(huì)給我“第一印象”。
很大…
開箱即用的東西數(shù)量很大,但還不算很多。 看到所有這些東西都是開箱即用的,不知道它在做什么,這是令人畏懼的。 盡管我喜歡擁有所有這些功能,但我覺得我沒有時(shí)間學(xué)習(xí)所有功能,或者至少足夠舒適地向提出要求的人解釋這些功能。
我們可以換個(gè)角度...
我不是Angular的忠實(shí)粉絲。 公平地說,我沒有過多地研究它。 JHipster使用Angular 1有點(diǎn)令人沮喪,但是Angular 2可用。 作為一個(gè)新手,我寧愿學(xué)習(xí)“未來”,也不愿停留在過去。 我知道您可以使用React JS的一種風(fēng)格,但是同樣,有些人可能對此表示反對。 為什么我需要JHipster為我承擔(dān)前端堆棧?
啟動(dòng)緩慢...
我沒有檢查這里是否還有其他選項(xiàng),但是在構(gòu)建整體式或網(wǎng)關(guān)應(yīng)用程序時(shí),npm install和bower install非常慢。 有點(diǎn)關(guān)了。 我想趕緊啟動(dòng)該應(yīng)用程序。 但是,相比之下,實(shí)際上每個(gè)應(yīng)用程序只執(zhí)行一次。 所以這有點(diǎn)折騰。
給它啟動(dòng)...
這是一個(gè)良好的啟動(dòng)。 到目前為止,我非常喜歡使用Spring Boot。 它使使用Web應(yīng)用程序變得非常容易。 無需費(fèi)力地將工具安裝到IDE中,就可以使用所選的任何服務(wù)器。 只需啟動(dòng)它,它的工作就非常簡單。 Spring Boot的最大缺點(diǎn)可能是它在運(yùn)行多個(gè)線程時(shí)開始消耗內(nèi)存。
誠實(shí)的反饋…
在玩了一段時(shí)間之后,我確實(shí)喜歡它的微服務(wù)方面。 對我來說,創(chuàng)建所有這些面向服務(wù)的應(yīng)用程序似乎是一個(gè)好主意。 我不是100%出售JHipster的需求,但我愿意嘗試一下。 我可能只想制作一個(gè)簡單的SPA,即可提供后端,并為前端提供一些非常簡單的東西,例如BackboneJS。 我決不排除Angular或React,但是這是我必須花多少時(shí)間學(xué)習(xí)新知識(shí)的一個(gè)方面。
我將盡力將現(xiàn)有的單片應(yīng)用程序(JSF)過渡到JHipster和微服務(wù)體系結(jié)構(gòu)。 也許它將提供另一個(gè)機(jī)會(huì)為每個(gè)人寫我的經(jīng)驗(yàn)博客。
感謝您抽出寶貴的時(shí)間閱讀! 祝你好運(yùn)!
翻譯自: https://www.javacodegeeks.com/2016/10/getting-started-jhipster-part-3.html
jhipster
總結(jié)
以上是生活随笔為你收集整理的jhipster_JHipster入门,第3部分的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: json怎么读取数据库_如何:使用Jso
- 下一篇: jhipster_JHipster入门,