使用SparkJava和Neo4j构建Java后端案例


该应用程序是一个基于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;
}

详细点击标题