同一项目中的 Java Spring Boot MVC 和 CLI API
我已经使用 Spring Boot MVC 实现了一个 Web 应用程序,现在我需要添加一个 API,其函数可以从 cronjob 调用。 我想使用在我的 Web 应用程序中实现的实体和存储库类。我正在考虑创建一个新的主类来实现 CommandLineRunner 接口(interface),然后为 Web 和 CLI 应用程序创建单独的 JARS 并独立运行它们。这是一个好方法吗? 您对架构有什么建议吗?
谢谢
最佳答案
同意 @jb-nizet 的评论 - cron
实际上只是应用程序的另一个客户端,并使用(bash
等)脚本包装 使用curl
、httpie
或wget
来调用 Controller 是一个很好的解决方案。
优点包括:
- 可以远程调用
- 不会增加应用程序的复杂性
- 应用程序边界/接口(interface)保持不变
- 不添加新应用程序(除了相对简单的脚本)
- 不依赖于
cron
- 几乎可以是任何其他应用程序
注意事项:
- 身份验证(如果需要)和 script/cron 中的凭据管理
- 如果 cron 所需的所有方法/操作都是新的并且与 Web 应用程序中的现有功能不同,那么将它们编码到 Web 应用程序中是否有意义?
关于同一项目中的 Java Spring Boot MVC 和 CLI API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768122/