摘要:创建此代码库是为了演示使用jdk HTTP Server构建的完全成熟的全栈应用程序,包括CRUD操作,身份验证,路由,分页等。有关如何与其他前端/后端一起工作的更多信息,请前往RealWorld repo。
JDK HTTP Server代码库包含真实的世界的示例(CRUD,auth,高级模式等),
创建此代码库是为了演示使用jdk HTTP Server构建的完全成熟的全栈应用程序,包括CRUD操作,身份验证,路由,分页等。
有关如何与其他前端/后端一起工作的更多信息,请前往RealWorld repo。
运行演示部署在这里
这是由几个组件组成的。主要
执行具体任务:
dev.mccue.jdk.httpserver用于提供Body抽象dev.mccue.jdk.httpserver.regexrouter用于基本请求路由dev.mccue.JSON用于读取和写入 JSONdev.mccue.jdk.httpserver.json用于使用 JSON 作为并从sBody中读取它HttpExchangedev.mccue.urlparameters用于解析查询参数dev.mccue.jdbc用于UncheckedSQLException和SQLFragmentio.github.cdimascio.dotenv.java用于本地开发.env文件slugify用于将文本转换为 url sage slugcom.zaxxer.hikari用于连接池bcrypt用于密码盐和哈希org.slf4j作为日志记录外观几乎所有代码都包含在RealWorldAPI类中。如果此处做出的任何选择冒犯了您的感受,我鼓励您分叉并展示您希望完成的方式。如果您认为某些事情做得不够好或客观上存在问题,请提出问题。
具体来说,我鼓励大家
尝试拆分 RealWorldAPI 类。尝试使用他们所选择的数据库抽象。 如果使用 Hibernate、JOOQ 或 JDBI,情况会怎样?尝试使用他们所选择的 JSON 库。 尝试将持久化/服务等整体拆分,这样会更好吗?添加单元测试。 对于这个问题,我可以直接使用 API 测试,但使用 JUnit 测试会怎样呢?先决条件
Java 22 或更高版本SDKManDocker用法
首先,启动 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已提交到存储库。请注意,一般来说,这是一个坏主意/做法,但这里唯一的秘密是本地数据库连接,所以没问题。
来源:解道Jdon
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!