偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

JHipster:Java和JavaScript的全??蚣?/h1> 譯文 精選

開(kāi)發(fā)
JHipster是一個(gè)長(zhǎng)期存在且雄心勃勃的Java和JavaScript混合項(xiàng)目,致力于使用響應(yīng)式前端簡(jiǎn)化全棧Java應(yīng)用程序的開(kāi)發(fā)。

JHipster是生成Java和JavaScript混合應(yīng)用程序的成熟框架,支持你喜歡用的開(kāi)發(fā)工具,并提供現(xiàn)成的監(jiān)控和其他管理功能。

JHipster是一個(gè)長(zhǎng)期存在且雄心勃勃的Java和JavaScript混合項(xiàng)目,致力于使用響應(yīng)式前端簡(jiǎn)化全棧Java應(yīng)用程序的開(kāi)發(fā)。JHipster開(kāi)發(fā)團(tuán)隊(duì)不斷發(fā)布新版本,以跟上IT行業(yè)變化。通過(guò)構(gòu)建一個(gè)簡(jiǎn)單的應(yīng)用程序來(lái)了解這個(gè)框架可以做什么。

JHipster是什么?

JHipster支持前端的React、Vue和Angular。它通過(guò)技術(shù)藍(lán)圖上的插件支持包括Svelte在內(nèi)的其他框架。在后端,Spring Boot起著重要的作用。在這方面,JHipster與Hilla框架類似,但有一個(gè)更雄心勃勃的目標(biāo),即支持多種前端技術(shù)棧。本質(zhì)上,JHipster是一個(gè)高級(jí)構(gòu)建工具,統(tǒng)一了Java和JavaScript構(gòu)建工具鏈,并將各種管理功能分層。

除了支持全棧應(yīng)用程序之外,JHipster還支持構(gòu)建微服務(wù)組件,并為基于JPA的關(guān)系數(shù)據(jù)存儲(chǔ)和NoSQL數(shù)據(jù)存儲(chǔ)(如MongoDB和Cassandra)提供了腳手架。它還具有日志記錄和分析功能。

JHipster的工具集包括命令行和領(lǐng)域特定語(yǔ)言(DSL),其中包含可視化數(shù)據(jù)建模器和基于web的構(gòu)造函數(shù)器(想想Spring的初始化器)。我們通過(guò)命令行開(kāi)始JHipster的使用。請(qǐng)注意,你需要安裝最新版本的Java、Node.js、Git。

JHipster示例應(yīng)用程序

按照J(rèn)Hipster快速啟動(dòng)指南,需安裝generator-jhipster NPM包,并創(chuàng)建一個(gè)新目錄來(lái)運(yùn)行生成器,你會(huì)看到圖1所示的交互式對(duì)話操作畫面。

 

圖1  Generator-JHipser構(gòu)建

你可以選擇接受大多數(shù)的默認(rèn)設(shè)置。但在本例中,將使用MongoDB作為數(shù)據(jù)庫(kù),并將React作為前端框架(可以選擇任何反映你心情的Bootswatch主題)。一旦設(shè)置了這些選項(xiàng),JHipster會(huì)完成構(gòu)建工作,并在剛剛創(chuàng)建的目錄中出現(xiàn)一個(gè)新的應(yīng)用程序代碼。

構(gòu)建并運(yùn)行應(yīng)用程序

JHipster已分別生成了Java和JavaScript應(yīng)用程序。后端使用Maven構(gòu)建,前端使用webpack構(gòu)建。可以同時(shí)運(yùn)行這兩部分的程序來(lái)啟動(dòng)整個(gè)應(yīng)用程序。(請(qǐng)記住,還需要同時(shí)在后臺(tái)運(yùn)行MongoDB)

在shell中,輸入:./mvn -P-webapp。此命令將構(gòu)建并運(yùn)行Java后端。我們使用-P-webapp避免讓Maven運(yùn)行webpack部分的內(nèi)容。

在另一個(gè)shell中,輸入:npm start。此命令將構(gòu)建前端并在webpack的開(kāi)發(fā)模式下運(yùn)行,通過(guò)API調(diào)用剛剛啟動(dòng)的Java服務(wù)。

如果一切順利,將在localhost:8080上看到圖2所示的頁(yè)面。

 

圖2  JHipster的歡迎頁(yè)面

創(chuàng)建測(cè)試用戶

如果看一下應(yīng)用程序目錄,你會(huì)發(fā)現(xiàn)JHipster生成器的輸出遠(yuǎn)遠(yuǎn)超過(guò)你常用的生成工具,包括功能性用戶管理功能和基于JWT的身份驗(yàn)證功能。該應(yīng)用程序還具有默認(rèn)帳戶,可使用該帳戶創(chuàng)建測(cè)試用戶。

首先,請(qǐng)使用系統(tǒng)頁(yè)面右上角的Register選項(xiàng)創(chuàng)建新用戶。然后,創(chuàng)建一個(gè)測(cè)試用戶(test@test.com),最后轉(zhuǎn)到登錄頁(yè)面并選擇默認(rèn)的admin/admin用戶。登錄后,導(dǎo)航到用戶管理頁(yè)面(管理->用戶管理)。請(qǐng)注意,新用戶已在列表中。你可以通過(guò)“非活動(dòng)”按鈕切換為“活動(dòng)”來(lái)激活測(cè)試用戶,然后可用測(cè)試用戶身份登錄。請(qǐng)注意,此測(cè)試用戶無(wú)法訪問(wèn)管理控制臺(tái)。

正如前面所說(shuō),JHipster有很多現(xiàn)成的功能。JHipster不僅支持React和MongoDB,而且還支持Angular、Vue以及大多數(shù)的SQL和NoSQL數(shù)據(jù)存儲(chǔ)。

代碼探索

為了支持所有這些功能,JHipster包含了很多的代碼。幸運(yùn)的是,這些基本上是最新的代碼,并且遵循了編程最佳實(shí)踐。例如,React代碼使用功能組件,利用Hooks,并針對(duì)集中式的存儲(chǔ)Redux運(yùn)行。

查看應(yīng)用程序目錄,將看到如下結(jié)構(gòu):

?/foundry-jhipster/
o/webpack/ : Config/utils for the webpack bundle
o/src/main/
?/java/ : Java sources
?/webapp/ : Front-end sources
o/target/ : Output directory for both builds
?/webapp/ : Front-end build output
?/java/ : Back-end build output
?/docker/ : Files to support containerization

Java應(yīng)用程序的入口是src/main/java/com/mycompany/myapp/JhipsterApp.java。它本質(zhì)上是一個(gè)Spring Boot web應(yīng)用程序,可以通過(guò)--spring.profiles.active=your-active-profile命令進(jìn)行配置。

通過(guò)Spring Security執(zhí)行身份驗(yàn)證和授權(quán),開(kāi)箱即用的Java應(yīng)用程序本質(zhì)上是用戶CRUD(創(chuàng)建、讀取、更新和刪除)功能的API。Spring Security系統(tǒng)可在/myapp/Security中配置。請(qǐng)記住,JHipster使用的是JSON Web令牌,所以支持它的類代碼位于/security/jwt中。

應(yīng)用程序的域模型在/domain目錄中定義,與前端/entities目錄相對(duì)應(yīng)。通過(guò)查看package.json,可查找可用的前端腳本。除了現(xiàn)在使用的dev-mode命令外,還包括mongodb prune命令、測(cè)試和生產(chǎn)構(gòu)建命令。

客戶端入口位于/src/main/webapp/index.html,但真正的運(yùn)行位于/sec/main/webapp/app/app.tsx,這里定義了承擔(dān)各種頁(yè)面組件的應(yīng)用程序路由(路由在router.tsx中定義)。

可以在main/webapp/app/modules中找到應(yīng)用程序的頁(yè)面組件。例如,在/home/home.tsx有主頁(yè)頁(yè)面的定義。

在/main/webapp/app/shared目錄中,可以找到整個(gè)應(yīng)用程序使用的代碼。其中大部分用于集中式存儲(chǔ),如model 定義和reducers。目前,應(yīng)用程序只處理用戶,因此只有這些組件和身份驗(yàn)證代碼位于共享目錄中。

在/entities文件夾中,包含建模實(shí)體的代碼。但請(qǐng)注意,用戶模型存儲(chǔ)在共享目錄中。但目前還沒(méi)有實(shí)體(entities),所以接下來(lái)必須添加一些。

定義模型:JDL和JDL Studio

JDL是JHipster用于定義應(yīng)用程序模型的領(lǐng)域特定語(yǔ)言。JDL所做的遠(yuǎn)遠(yuǎn)不止于使用JDL元數(shù)據(jù)定義整個(gè)應(yīng)用程序,但我們將重點(diǎn)關(guān)注模型。

首先,讓我們使用JHipster的在線工具JDL-Studio為域模型快速生成一些CRUD功能。你將看到一個(gè)實(shí)體關(guān)系生成器,如圖3所示。

 

圖3  JDL編譯器

JDL builder支持定義實(shí)體及其屬性,以及它們之間的關(guān)系。你可以通過(guò)更改左側(cè)的實(shí)體定義并觀察它們顯示出來(lái)的表達(dá)方式來(lái)探索語(yǔ)法。

點(diǎn)擊頁(yè)面右上角的【下載此JDL源代碼】按鈕來(lái)下載已定義好的實(shí)體。(請(qǐng)注意,工具欄中有多個(gè)選項(xiàng)用于相關(guān)的配置)

獲得文件后,通過(guò)命令行轉(zhuǎn)到項(xiàng)目根目錄下,在命令行鍵入jhipster jdl my jdl file.jdl,其中是my-jdl-file.jdl是剛剛導(dǎo)出的文件的名稱。

將會(huì)提示您是否要覆蓋這些文件。選擇是,則繼續(xù)構(gòu)建。完成后,可以重新啟動(dòng)服務(wù)器,并查看添加到應(yīng)用程序的內(nèi)容。在瀏覽器上以9000的端口上再次打開(kāi)應(yīng)用程序,然后以admin/admin登錄。

現(xiàn)在,當(dāng)打開(kāi)導(dǎo)航欄中的Entities菜單項(xiàng)時(shí),你將看到所有剛導(dǎo)入的實(shí)體,以及一個(gè)可完全控制的控制臺(tái)來(lái)管理它們。例如,您可以創(chuàng)建一個(gè)新的“Country”實(shí)體,然后創(chuàng)建一個(gè)新的“Location”實(shí)體,并在Location實(shí)體中引用新創(chuàng)建的Country實(shí)體。請(qǐng)注意,所有CRUD功能都在這里。

監(jiān)測(cè)和API管理

幾個(gè)附加功能對(duì)于管理員用戶來(lái)說(shuō),值得關(guān)注。Administration菜單包括一個(gè)Metrics選項(xiàng),可以深入了解正在運(yùn)行的JVM特性,如圖4所示。有關(guān)其監(jiān)視功能的更多信息,請(qǐng)參閱JHipster文檔。

 

圖4 使用JVM指標(biāo)監(jiān)視JHipster應(yīng)用程序

JHipster還為其后臺(tái)端生成OpenAPI/Swagger風(fēng)格的定義,以及一個(gè)用于交互的簡(jiǎn)單控制臺(tái)。圖5展示了API管理頁(yè)面。

 

圖5 通過(guò)API管理頁(yè)面與后臺(tái)端交互

JHipster提供了一個(gè)靈活的體系結(jié)構(gòu),允許不同的數(shù)據(jù)存儲(chǔ)和前端框架??偠灾?,這是一個(gè)令人印象深刻的框架。

譯者介紹

涂承燁,51CTO社區(qū)編輯,信息系統(tǒng)項(xiàng)目管理師、信息系統(tǒng)監(jiān)理師、PMP,某省綜合性評(píng)標(biāo)專家,擁有15年的開(kāi)發(fā)經(jīng)驗(yàn)。對(duì)項(xiàng)目管理、前后端開(kāi)發(fā)、微服務(wù)、架構(gòu)設(shè)計(jì)、物聯(lián)網(wǎng)、大數(shù)據(jù)等較為關(guān)注。目前就職于壹體技術(shù)有限公司,從事較大型項(xiàng)目管理工作。

原文標(biāo)題:??Intro to JHipster: A full-stack framework for Java and JavaScript??,作者:Matthew Tyson



責(zé)任編輯:莫奇 來(lái)源: 51CTO技術(shù)棧
相關(guān)推薦

2013-12-09 09:42:50

JavaScript全棧式

2017-04-06 10:27:01

JavaScript基礎(chǔ)Java

2022-04-13 08:00:00

Hilla開(kāi)發(fā)Java

2023-05-26 06:28:15

2015-05-04 09:23:38

JavaScript全棧開(kāi)發(fā)員云計(jì)算

2025-03-03 07:40:00

2018-10-15 10:22:51

2023-08-21 09:51:57

全棧軟件開(kāi)發(fā)

2020-03-22 15:54:14

全棧開(kāi)發(fā)框架庫(kù)

2023-12-05 13:10:00

ReflexPython

2022-08-22 08:05:17

Fresh框架Remix

2025-01-16 14:11:55

開(kāi)發(fā)框架LikeAdmin

2012-03-29 15:15:49

Java

2023-09-17 12:21:21

RemixNext.js

2024-10-11 14:33:15

ReactRemix用戶

2023-11-02 08:01:06

Next.jsReactWeb

2017-04-12 14:45:20

數(shù)據(jù)架構(gòu)數(shù)據(jù)源

2017-06-13 08:55:29

Log日志MySQL

2017-04-10 10:35:02

JavaScript框架庫(kù)

2017-06-13 15:10:02

大數(shù)據(jù)Log日志
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)