java - 如何在 API 开始时在 db 中插入域对象
问题描述
我用 jersey 和 jetty 用 java 构建了一个 REST API。我有一个复杂的域,其中有一个类(工人)。我希望能够通过 POST 动态添加工作人员。但是,业务逻辑要求我有一些具有固定值的默认工作人员。所以在 API 开始时,我需要将它们添加到我的数据库中(现在它在内存中)。就干净的代码而言,最好的方法是什么?
我考虑过使用这些默认工作人员初始化我的存储库,但我觉得它违反了 WorkerRepo 类的 SRP,我觉得这应该是应用程序层的工作,因为它特定于这个应用程序,而不是域,如果这使得感觉。我应该在哪里移动这个初始化的逻辑?谢谢!
解决方案
从我的角度来看,我会像设计所有其他用例一样设计您的需求。例如一个SetupWorkerInteractor
。
我会使用一个ApplicationRunner
封装应用程序启动逻辑的。例如解析命令行参数,构建应用程序上下文,调用初始化过程并运行应用程序。当然,我也会将这些方面分成不同的类别,但我想你明白我的意思。
在我的情况下,我将使用ApplicationLog
作为设置用例输出的“演示者”。
为简单起见,我省略了实体和请求/响应模型。
如果我这样做,无论SetupWorkerInputBoundary
是从ApplicationRunner
、 aRestService
还是例如消息传递系统调用都无关紧要。我也可以像任何其他用例一样测试设置。
推荐阅读
- c# - 索引超出了随机化函数的数组范围
- sqlalchemy - SQLAlchemy 将类自动映射到 model.py 文件
- angular - 如何在 Angular 的 NGRX 效果中使用异步和等待
- php - 使用 iframe 在 Codeigniter 中下载多个图像
- ansible - 仅使用 Ansible 设置和过滤器过滤 Centos 6 | 不使用 ansible-playbook
- azure - AD B2C 中 SPA 应用程序中的刷新令牌过期
- makefile - 根据 zip 文件制作重建目标
- android - Adnroid ViewPager2 包装异步片段子项的内容
- stata - 在Stata中将格式化值添加到绘图标题
- css - 孤儿/寡妇如何工作?