JHipster建立Java Web應用(圖文)
簡介J潮客
J潮客(jHipster)是什麼東西? 是誰開始的?其實J潮客是開源技術, 在2013年由法國Java專家 Julien Dubois (朱利安 杜波爾斯)率先倡導,至今仍是J潮客專案主導者。簡易直說它是工具集堆綜合技術,意思是由多種技術工具配置而成的Java Web開發程式產生器。好處是由Java專家累積的開發經驗,配上各類實用的框架技術,去繁取精的運用,全方位的配置,製成出完備的開發應用程式,絕對適用於面向服務的體系結構 (SOA).
J潮客包括最先進的Java 8,特色是多用註解, 不用XML 配置的組態,配備了全方位的工作環境,從開發,測試,監控到製成,以及雲部署。能提供最先進的Java 技術如微服務綜合技術 (Microservices)。
主要的技術有以下幾種,簡單介紹
如果想知道更多有關這些資訊,可問百度。
- Spring Boot: 能建成獨立Spring 的應用程式
- Spring Security: 標準業內的授權和認證
- AngularJS: JavaScript的MVC框架客戶端
- Bootstrap: 來自Twitter,是目前最受歡迎的前端框架
- REST APIs: 基於Http協議實現資源操作
- Liquid Database: 資料庫原始碼版本控制
- CSS3 + 動畫
- HTML5: 移動開發主導(Mobil First)
- Full internationalization support:支援完善的國際化文字
- Web Socket:允許使用者在瀏覽器中實現雙向通訊,實現資料的及時推送
- 嵌入式tomcat ,jetty及undertow
創立專案工具技術選擇多
- 自動配置依賴資源:Maven 或 Gradle
- 驗證型別: Cookie type, JWT 和OAuth2
- 資料庫: SQL 及 NOSQL (MySQL, Postgres, H2)
- 快取記憶體: EhCache or Hazelcast
- 自動化重複任務:實時編輯: GULP 及 Grunt
- 各類工具:Yeoman, npm (nodejs), BrowserSync
安裝J潮客(jHipster)
一、基礎環境
建立J潮客 (jHipster) 的工作環境是必須的,需要配備有:
- Java 8 SDK
- Maven 或 Gradle
- nodeJs
- PhantomJS
- Xcode (ios)
- Mysql 或 Postgres (Mysql Workbench or pgAdmin3)
- Git 版本控制
- STS ide, Eclipse, Intellij IDEA, 其中一個
- 具體詳細安裝方法,網上多。必須測試好開發環境,各軟體工具以最新版本安全執行。
(有關安裝開源工具-J潮客,對於菜烏來說,可能是一個挑戰,因為它是比較短暫歷史,沒有具體處理步驟提供,故此本文特別加入十分具體詳細安裝步驟顯示。以便對應是否安裝成功。)安裝 J潮客有多種,本文只在本地安裝Window上安裝.
- Windows 8 和 10: 要用有管理員權益的命令提示符 (cmd)
- ios 和 Linux 用終端 terminal,用管理員權益安裝(sudo)
1、PhantomJS環境配置
(1)下載PhantomJS.zip
(2)解壓到固定目錄
(3)將phantomjs_home\bin新增到path目錄下
2、Nodejs環境配置
nodejs使用安裝包正常安裝後,node和npm都可以在windows下正常使用。但是,如果不進行必要的配置,通過npm安裝的很多包是無法正常在cmd下面使用的。
nodejs安裝後需要進行以下配置。、
(1)配置prefix和cache目錄
示例目錄地址為:C:\Program Files\nodejs
npm config set prefix “C:\Program Files\nodejs\node_global”
npm config set cache “C:\Program Files\nodejs\node_cache
(2)配置環境變數
右擊“計算機”—>”屬性”—>”高階系統設定”—>”環境變數”
在”系統變數”中,設定 NODE_PATH
在系統變數裡新建 NODE_PATH ,值為C:\Program Files\nodejs\node_global
這個值就是上一步中,通過 “npm config set prefix” 設定的值。可以,用下面命令檢視
npm config get prefix
在”使用者變數”中,修改path
修改使用者變數中的path,新增C:\Program Files\nodejs\node_global。
這個值就是上一步中,通過 “npm config set prefix” 設定的值。
二、前期準備
在node中,安裝依賴工具
安裝 Yeoman:
npm install -g yo
安裝 Bower:
npm install -g bower
安裝 Gulp:
npm install -g gulp
安裝 JHipster:
npm install -g generator-jhipster
三、建立工程
(一)、新建一個工程目錄,本文中示例為JHipster_demo
(二)、開啟CMD,進入到JHipster_demo目錄,輸入命令:
yo jhipster
如下圖:
看到JHipster的Logo資訊,說明啟動成功,如下圖:
(三)、根據自己的需要選擇必要的配置,根據介面上的提示回答問題即可。用上下鍵選擇,存在多選的地方,用空格配合上下鍵選擇,回車確認。
1、你想建立什麼型別的應用?
你可以選擇:
- 一體化應用:這是一個典型的,通用的應用。它容易使用和開發,是我們預設推薦的。
- 微服務應用:採用微服務的架構,這是其中一個服務例項。
- 微服務閘道器:採用微服務的架構,這裡一個為微服務例項提供路由以及安全保障的應用。
2、你應用的名稱?
如題,輸入你應用的名稱。
3、你的 Java 包名 ?
你的 java 應用程式將使用此作為它的根包。這個值被儲存在 Yeoman 在,下次執行生成器,它將成為預設值。當然,你可以通過提供一個新的值來覆蓋它。
4、你選擇哪種身份認證方式?
你可以選擇:
- 基於經典的會話認證機制, 做 java web 都知道(這也是許多人使用 Spring Security 的方式)。你也可以通過用這種方式來使用 Spring Social。Spring Social 可以讓你使用社會化登陸(比如 Google,Facebook,Twitter), 這個配置項由 Spring boot 提供。
- 基於 OAuth 2.0 的認證機制。(JHipster 會提供生成必要的 OAuth2 服務端程式碼和資料庫表)。
- 採用 JSON Web Token (JWT) 的認證機制。
- OAuth 2.0 和 JWT 可以讓你構建無狀態的應用架構(他們不依賴 HTTP Session)。
5、你想使用哪種資料庫?
你可以選擇:
- SQL 資料庫 (H2, MySQL, MariaDB, PostgreSQL, Oracle),預設 使用Spring Data JPA 來訪問。
- MongoDB
- Cassandra
6、你要在生產環境下采用哪種資料庫?
這個選項的回答會被寫入生產環境下的配置檔案。你可以在src/main/resources/config/application-prod.yml檔案中配置他。
如果你想使用 Oracle,你需要檢視 [install the Oracle JDBC driver manually]
7、你要在開發環境下采用哪種資料庫?
這個選項的回答會被寫入開發環境下的配置檔案。
你也可以選擇:
- 在記憶體中執行的 H2。這種方式很簡單使用,但是你的資料會丟失當你重新啟動伺服器。
- 資料儲存在磁碟上的 H2。目前處在 BETA 測試狀態(不支援 Windows),但這將最終是一個比在記憶體中執行更好的選擇,因為你不會失去你的資料後,當應用程式重新啟動後。
- MySQL,和生產環節一樣的資料庫,這搭建的時候會有點麻煩。但是你最好在編碼完成後,在和生產環境一樣的資料庫上跑一下程式。
你可以在src/main/resources/config/application-dev.yml檔案中配置它。
8、你想使用 Hibernate 二級快取嗎?
Hibernate是 JHipster 提供的 JPA 的實現。處於效能考慮,我們強烈建議你是有快取,你可以根據你的應用來調整它。你可以選擇使用ehcache(本地快取) 或者Hazelcast(分散式快取,用於叢集環境)。
9、你想使用 Maven 還是 Gradle ?
你可以通過Maven或者Gradle來構建你的應用。Maven 相對 Gradle 更穩定、更成熟。而 Gradle 更靈活,更容易擴充套件。
10、你會在應用中使用的其它技術
11、你想使用 LibSass 來預處理你的 CSS 嘛?
Node-sass 是處理 CSS 的一個很好的方案,你需要執行一個 Gulp 服務來自動配置它。
12、你想通過 Angular Translate 來支援多語言嘛?
預設情況下 JHipster 提供l 優秀的國際化的支援,無論是在客戶端與Angular Translate和在伺服器端。但是國際化增加系統開銷,管理起來會有些複雜,所以你可以選擇不安裝這個功能。
選擇要支援本地的語言
選擇要支援的其它語言
13、你想使用那個測試框架?
預設情況下 JHipster 提供 java 單元/整合測試(使用Spring JUnit支援)和 JavaScript 單元測試(使用Karma.js)。這也是一個可選項。
- 使用 Gatling 進行效能測試。
- 使用 Cucumber 模擬使用者行為
- 使用 Protractor 對 AngularJS 進行整合測試
選擇完成之後,點選回車,就會開始執行程式碼的生成工作。完成之後,用你的IDE開啟,我用的是Maven,所以執行:
mvn clean install
訪問:
http://localhost:8080
就可以看到效果了。
命令選項
你也可以用一些可選的命令來執行 JHipster。這些選項可參考JHipster –help:
以下是可選項:
- –help - 檢視生成器的選項和用法 。
- –skip-cache - 不記住你之前的回答 (預設: false)。
- –skip-install - 不自動安裝依賴 (預設: false)。
- –skip-client - 不生成客戶端程式碼 (預設: false)。這和執行yo jhipster:server效果一樣。
- –skip-server - 不生成服務端程式碼 (預設: false)。這和執行yo jhipster:client效果一樣。
- –skip-user-management - 跳過生成前後端使用者管理相關程式碼 (預設: false)
- –i18n - 禁用或允許客戶端 i18n 國際化支援。(預設: true)。
- –with-entities - 重新生成現有的實體如果他們已經存在。(using their configuration in the .jhipster folder) (預設: false)
- –check-install - 檢查你的安裝是否正確(預設: true)。