Quickstarters
Feature Overview
How to Build a Backend for Java?
36 分
介绍 在本教程中,您将学习 如何使用 back4app 构建 java 应用程序。 java 是一种多用途的面向对象编程语言,广泛用于 web 开发和服务器端应用程序开发。 通过将 back4app 与您的 java 项目集成,您可以利用安全的数据库管理、云代码功能、restful web 服务、graphql api、用户身份验证和实时查询等基本后端功能,同时减少基础设施开销。 这种方法使您能够加速 java 后端开发 ,并确保可扩展性,让您摆脱手动服务器配置的复杂性。 您将获得实践经验,应用这些技术,从建立数据结构到使用云作业调度任务和集成 webhook。 这个基础使您能够轻松构建从小型 web 应用到大型企业的 java 应用程序 。 完成本指南后,您将准备好使用 back4app 强大的后端基础设施创建或扩展您的 web 应用程序 。 您将知道如何连接 parse java sdk 以执行数据操作、实现访问控制和处理复杂的业务逻辑。 本教程将为您提供继续在此平台上构建所需的技能,添加新功能或优化以适应生产准备。 先决条件 要完成本教程,您需要: 一个 back4app 账户和一个新的 back4app 项目 开始使用 back4app。 https //www back4app com/docs/get started/new parse app 如果您没有账户,请免费注册。 一个 java 开发环境 您可以使用任何 java 后端框架 或 java ide(例如,intellij、eclipse 或带 java 的 vs code)来设置此环境。确保您已安装 java 开发工具包 (jdk) 。 下载最新的 jdk https //www oracle com/java/technologies/downloads/ java 编程语言的基本知识 熟悉 面向对象编程 概念、 数据结构 , 和 restful 网络服务 是有帮助的。 java 官方文档 https //docs oracle com/en/java/ maven 或 gradle 用于依赖管理(可选) 如果您计划使用构建工具集成 parse java sdk,您应该安装 maven 或 gradle。 maven 文档 https //maven apache org/ | gradle 文档 https //gradle org/docs/ 在开始之前,请确保您已具备所有这些先决条件。准备好您的 back4app 项目并配置好 java 环境将使本教程更加顺利。 步骤 1 – 在 back4app 上创建新项目并连接 创建新项目 在 back4app 上进行 java 后端开发 的第一步是创建一个新项目。如果您尚未创建,请按照以下步骤操作: 登录到您的 back4app 账户 点击“新应用”按钮 在您的 back4app 控制面板中 给您的应用命名 (例如,“java backend tutorial”)。 项目创建后,您将在您的 back4app 控制面板中看到它列出。该项目将作为本教程中讨论的所有后端配置的基础。 连接 parse sdk back4app 依赖于 parse platform 来管理您的数据,提供实时更新,处理用户身份验证等。对于 java 项目,您可以集成 parse java sdk https //github com/parse community/parse sdk java 检索您的 parse 密钥 在您的 back4app 控制面板中,导航到 应用设置 或 安全与密钥 找到您的 应用程序 id 和 客户端密钥 您还将看到 parse 服务器 url (通常是 https //parseapi back4app com )。 将 parse java sdk 添加到您的项目中。如果您使用 maven,请将以下内容添加到您的 pom xml \<dependency> \<groupid>com parse\</ >groupid> \<artifactid>parse\</ >artifactid> \<version>1 26 0\</ >version> \</dependency> 如果您更喜欢 gradle,请将其添加到您的 build gradle dependencies { implementation 'com parse\ parse 1 26 0' } 在您的 java 代码中初始化 parse (例如,在主类或配置类中): import com parse parse; public class main { public static void main(string\[] args) { parse initialize(new parse configuration builder("your app context") applicationid("your application id") clientkey("your client key") server("https //parseapi back4app com/") build() ); system out println("parse initialized successfully!"); // continue with your app logic } } 将 "your app context" 替换为您的实际上下文(如果有的话),或者如果不需要则传递 null 。此代码确保您的 web 应用程序 或 服务器端 java 应用程序可以安全地与 back4app 通信。 步骤 2 – 设置数据库 back4app 提供一个托管的、可扩展的数据库,能够与您的 java 编程语言 应用无缝集成。您可以直接在 back4app 仪表板中或动态创建类、列和关系。 1\ 创建数据模型 您可以在 back4app 数据库中定义您的类(表)及其列。例如,要创建一个 待办事项 类: 导航到您的 back4app 仪表板中的 “数据库” 部分 。 点击 “创建新类” 并命名为 待办事项 。 添加相关列 (例如, 标题 作为字符串, 是否完成 作为布尔值)。 2\ 使用 ai 代理创建数据模型 back4app 的 ai 代理可以自动构建您的架构: 在您的仪表板中打开 ai 代理 。 描述您的数据 (例如,“创建一个包含标题和是否完成字段的新待办事项类。”)。 审查并应用 ai 生成的架构。 3\ 使用 parse java sdk 读取和写入数据 下面是一个简短的示例,展示如何使用 java import com parse parseobject; import com parse parsequery; import com parse parseexception; import com parse parsecloud; import java util list; public class todoservice { // create a new todo public void createtodoitem(string title, boolean iscompleted) { parseobject todo = new parseobject("todo"); todo put("title", title); todo put("iscompleted", iscompleted); try { todo save(); system out println("todo saved successfully with objectid " + todo getobjectid()); } catch (parseexception e) { system err println("error saving todo " + e getmessage()); } } // fetch all todos public void fetchtodos() { parsequery\<parseobject> query = parsequery getquery("todo"); try { list\<parseobject> results = query find(); system out println("fetched " + results size() + " todo items "); for (parseobject todo results) { system out println(" " + todo getstring("title")); } } catch (parseexception e) { system err println("error fetching todos " + e getmessage()); } } } 4\ 使用 rest api 读取和写入数据 或者,使用 rest 端点 curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5\ 使用 graphql api 读取和写入数据 使用 back4app 的 graphql 接口 mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6\ 使用实时查询(可选) 对于 实时更新 在 网页开发 场景中,back4app 支持实时查询。如果适合您的用例,请在仪表板中启用实时查询并将其集成到您的 java 应用程序中(通常用于实时网页或移动应用)。 步骤 3 – 使用 acl 和 clp 应用安全性 简要概述 acls (访问控制列表)和 clps (类级权限)通过控制谁可以读取或写入对象来帮助保护您的数据。 逐步指南 类级权限 (clps) 前往你的 back4app 控制面板中的 数据库 。 选择一个类 (例如, 待办事项 ) 并打开 类级权限 。 配置读/写规则,例如要求用户身份验证或限制公共访问。 访问控制列表 (acls) 在代码中应用对象级权限。例如: parseobject todo = new parseobject("todo"); todo put("title", "private task"); // grant owner read/write permission, remove public read/write todo setacl(new com parse parseacl(parseuser getcurrentuser())); try { todo save(); } catch (parseexception e) { e printstacktrace(); } 这设置了 acl,使得只有当前用户可以读取或写入该对象。 步骤 4 – 编写云代码函数 为什么使用云代码 云代码为您的 java 后端开发 工作流添加了 服务器端 逻辑。您可以编写自定义函数、触发器和验证,这些都在 back4app 的服务器上运行,无需手动管理基础设施。这对于高级业务逻辑、数据转换或安全调用外部 api 是理想的。 示例函数 在您的 back4app 云代码 部分创建一个 main js ,然后定义一个函数: parse cloud define("gettodocount", async (request) => { const query = new parse query("todo"); const count = await query count(); return { totaltodos count }; }); 部署 使用 back4app cli b4a deploy 或者通过 仪表板 导航到 云代码 > 函数 将函数粘贴到 main js 中,然后点击 部署 。 云代码中的 npm 如果需要,安装并引用外部 npm 模块。例如,您可以引用一个 node 库来处理云代码中的特定任务。这些任务独立于您的 java 代码运行,但可以从您的 java 应用程序中调用,如下所述。 从 java 调用云代码 import com parse parsecloud; import java util hashmap; import java util map; public class cloudcodeexample { public void gettodocount() { try { map\<string, object> params = new hashmap<>(); map\<string, object> result = parsecloud callfunction("gettodocount", params); system out println("total todos " + result get("totaltodos")); } catch (exception e) { e printstacktrace(); } } } 步骤 5 – 配置身份验证 启用用户身份验证 back4app 的 parse user 类简化了身份验证。它自动管理密码哈希、会话令牌和安全存储。 java 代码示例 import com parse parseuser; import com parse parseexception; public class userservice { // sign up public void signupuser(string username, string password, string email) { parseuser user = new parseuser(); user setusername(username); user setpassword(password); user setemail(email); try { user signup(); system out println("user signed up successfully!"); } catch (parseexception e) { system err println("error signing up user " + e getmessage()); } } // log in public void loginuser(string username, string password) { try { parseuser user = parseuser login(username, password); system out println("user logged in " + user getusername()); } catch (parseexception e) { system err println("error logging in user " + e getmessage()); } } } 社交登录 parse 可以与 google , facebook , apple , 等等集成。您通常需要为每个提供者安装额外的库或使用适配器,然后在您的 back4app 项目中配置它们。 社交登录文档 https //www back4app com/docs/platform/sign in with apple 第 6 步 – 处理文件存储 文件上传和检索 back4app 自动安全地存储您的文件。使用 parsefile 在 java 中 import com parse parsefile; import com parse parseobject; import java nio file files; import java nio file paths; public class fileservice { public void uploadfile(string filepath) { try { byte\[] data = files readallbytes(paths get(filepath)); parsefile parsefile = new parsefile("uploadedfile", data); parsefile save(); // uploads file parseobject fileobject = new parseobject("myfile"); fileobject put("file", parsefile); fileobject save(); system out println("file uploaded " + parsefile geturl()); } catch (exception e) { e printstacktrace(); } } } 安全考虑 您可以在您的 parse server 设置中配置文件上传权限,以仅允许经过身份验证的用户或阻止公共上传。 步骤 7 – 电子邮件验证和密码重置 概述 对于安全的 web 应用程序 , 您需要验证用户电子邮件并提供密码重置选项。 back4app仪表板配置 前往电子邮件设置 在您的back4app仪表板中 启用电子邮件验证 并设置模板 启用密码重置 以允许用户安全地恢复他们的帐户 代码实现 try { parseuser requestpasswordreset("user\@example com"); system out println("password reset request sent!"); } catch (parseexception e) { system err println("error requesting password reset " + e getmessage()); } 步骤 8 – 使用云作业调度任务 云作业概述 使用 云作业 来调度任务,例如定期数据清理或自动报告。在 main js parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); // example remove todos older than 30 days const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); 部署,然后在你的 background jobs 部分的 back4app 控制面板中安排 步骤 9 – 集成 webhooks 定义和配置 webhooks 让你在某些事件发生时向外部系统发送 http 请求。例如,每当创建一个 todo 时,你可能会将数据发送到支付网关或分析平台 前往你的应用程序控制面板 > 更多 > webhooks 添加一个 webhook 指定外部端点 选择哪些事件 触发 webhook 步骤 10 – 探索 back4app 管理面板 在哪里找到它 “ back4app 管理面板 ”是一个无代码的界面,用于管理数据。请在“ 应用仪表板 > 更多 > 管理应用 ”下启用它。 功能 启用后,您可以: 直接查看、编辑或删除 记录。 为不同的团队成员分配角色。 自定义用户界面并管理企业级的 应用程序开发 。 结论 通过完成本指南,您已经了解了如何使用 back4app构建java的后端 。 设置 可扩展的数据库。 实现了 实时查询, restful网络服务 , 和graphql以访问数据。 集成了 强大的安全措施,包括acl和clp。 利用 云代码进行服务器端逻辑处理。 配置了 用户认证,包括电子邮件验证和密码重置。 存储和检索 文件以供您的 网络应用程序 使用。 安排了 背景作业以进行数据维护。 连接了 webhook以集成第三方服务。 探索了 管理面板以进行无代码的数据管理。 您现在具备了扩展您的 java后端框架 以处理生产负载、集成外部api和构建高级功能的能力。凭借这一坚实的基础,您的 java编程语言 项目可以在 web开发 及其他领域达到新的高度。 下一步 优化你的后端 以适应企业级 java后端开发 , 添加复杂逻辑和特定领域的数据结构。 集成高级功能 如专业的身份验证流程、基于角色的访问或第三方rest api。 参考官方back4app文档 以加深你对性能调优、日志记录和分析的理解。 探索更多教程 关于构建聊天系统、物联网服务或地理位置应用,以进一步利用back4app的实时能力。