使用SparkJava和Neo4j構建Java後端案例

banq發表於2022-04-21

該應用程式是一個基於MovieLens 推薦資料集的 IMDB 克隆,其中增加了來自themoviedb.org的電影和演員資料。
前端是用 vue.js 編寫的,看起來很漂亮。
它呼叫許多 REST API 端點來提供不同的檢視和功能。

基本功能是:
  • 註冊和驗證使用者並儲存他們的資訊
  • 列出型別、電影、排序和過濾的人員以及相關資訊
  • 收藏和評價電影並返回這些列表和推薦

應用程式開發課程逐步實現端點,從假夾具資料開始,到成熟的應用程式結束,準備部署。

這裡是包含應用程式程式碼的儲存庫,可用於構建和執行應用程式。

Web 框架 - SparkJava
您可能沒有聽說過SparkJava,它已經存在了很長一段時間,它是 Express/Sinatra 等效的 Java 簡約 Web 框架。

import static spark.Spark.*;


public class HelloWorld {
    public static void main(String args) {
        get("/hello", (req, res) -> "Hello World");
    }
}

我們註冊路由、新增錯誤處理、驗證身份驗證、以 JSON 格式提供公共檔案格式(使用 GSON)和啟動伺服器的整個主應用程式不超過 20 行。

Neo4j 驅動程式
真正的服務實現使用官方的Neo4j Java Driver來查詢資料庫。我們可以將引數化的Cypher 查詢傳送到伺服器,使用引數並在可重試事務函式(讀取或寫入事務)中處理結果。
將驅動程式依賴項(org.neo4j.driver:neo4j-java-driver)新增到pom.xml.
然後,您可以為您的應用程式生命週期建立一個驅動程式例項,並隨時使用驅動程式會話。
會話不保留 TCP 連線,而是根據需要從池中使用它們。在會話中,您可以使用讀取和寫入事務來完成您的(單位)工作。
我們獲得了我們從中application.properties讀取的連線憑據,併為方便起見設定為系統屬性並初始化驅動程式。

static Driver initDriver() {
    AuthToken auth = AuthTokens.basic(getNeo4jUsername(), getNeo4jPassword());
    Driver driver = GraphDatabase.driver(getNeo4jUri(), auth);
    driver.verifyConnectivity();
    return driver;
}


詳細點選標題
 

相關文章