JDK HTTP 服务器:真实世界后端开源演示

JDK HTTP Server代码库包含真实的世界的示例(CRUD,auth,高级模式等),

创建此代码库是为了演示使用JDK HTTP Server构建的完全成熟的全栈应用程序,包括CRUD操作,身份验证,路由,分页等。

有关如何与其他前端/后端一起工作的更多信息,请前往RealWorld repo。

运行演示部署在这里

这是由几个组件组成的。主要

  • jdk.httpserver模块,提供针对其编程的API
  • Jetty,它为jdk.httpserver提供了实际的支持实现
  • 数据库的PostgreSQL
  • RainbowGum用于日志

执行具体任务:

几乎所有代码都包含在RealWorldAPI类中。如果此处做出的任何选择冒犯了您的感受,我鼓励您分叉并展示您希望完成的方式。如果您认为某些事情做得不够好或客观上存在问题,请提出问题。

具体来说,我鼓励大家

  • 尝试拆分 RealWorldAPI 类。
  • 尝试使用他们所选择的数据库抽象。 如果使用 Hibernate、JOOQ 或 JDBI,情况会怎样?
  • 尝试使用他们所选择的 JSON 库。 尝试将持久化/服务等整体拆分,这样会更好吗?
  • 添加单元测试。 对于这个问题,我可以直接使用 API 测试,但使用 JUnit 测试会怎样呢?

先决条件

  • Java 22 或更高版本
  • SDKMan
  • Docker

用法

首先,启动 postgres

$ docker compose up -d

然后安装 MyBatis Migrations。目前使用 SDKMan 最容易做到这一点。

$ sdk install mybatis

将migrations应用到数据库

$ cd migrations

$ migrate up

$ cd ..

然后运行服务器

  • 在编辑器中打开项目

  • 通过 maven 运行它( ./mvnw exec:java -Dexec.mainClass="dev.mccue.jdk.httpserver.realworld.Main")

  • 通过docker运行

$ docker build -t realworld .

$ docker run realworld

该项目的文件.env已提交到存储库。请注意,一般来说,这是一个坏主意/做法,但这里唯一的秘密是本地数据库连接,所以没问题。

https://www.jdon.com/76454.html

相关推荐
晚烛5 分钟前
CANN + 物理信息神经网络(PINNs):求解偏微分方程的新范式
javascript·人工智能·flutter·html·零售
小迷糊的学习记录1 小时前
0.1 + 0.2 不等于 0.3
前端·javascript·面试
空&白2 小时前
vue暗黑模式
javascript·vue.js
VT.馒头2 小时前
【力扣】2695. 包装数组
前端·javascript·算法·leetcode·职场和发展·typescript
css趣多多3 小时前
一个UI内置组件el-scrollbar
前端·javascript·vue.js
-凌凌漆-3 小时前
【vue】pinia中的值使用 v-model绑定出现[object Object]
javascript·vue.js·ecmascript
大橙子额5 小时前
【解决报错】Cannot assign to read only property ‘exports‘ of object ‘#<Object>‘
前端·javascript·vue.js
WooaiJava6 小时前
AI 智能助手项目面试技术要点总结(前端部分)
javascript·大模型·html5
Never_Satisfied6 小时前
在JavaScript / HTML中,关于querySelectorAll方法
开发语言·javascript·html
董世昌416 小时前
深度解析ES6 Set与Map:相同点、核心差异及实战选型
前端·javascript·es6