同一项目中的 Java Spring Boot MVC 和 CLI API

标签 java spring spring-boot architecture

同一项目中的 Java Spring Boot MVC 和 CLI API

我已经使用 Spring Boot MVC 实现了一个 Web 应用程序,现在我需要添加一个 API,其函数可以从 cronjob 调用。 我想使用在我的 Web 应用程序中实现的实体和存储库类。我正在考虑创建一个新的主类来实现 CommandLineRunner 接口(interface),然后为 Web 和 CLI 应用程序创建单独的 JARS 并独立运行它们。这是一个好方法吗? 您对架构有什么建议吗?

谢谢

最佳答案

同意 @jb-nizet 的评论 - cron 实际上只是应用程序的另一个客户端,并使用(bash 等)脚本包装 使用curlhttpiewget来调用 Controller 是一个很好的解决方案。

优点包括:

  • 可以远程调用
  • 不会增加应用程序的复杂性
  • 应用程序边界/接口(interface)保持不变
  • 不添加新应用程序(除了相对简单的脚本)
  • 不依赖于cron - 几乎可以是任何其他应用程序

注意事项:

  • 身份验证(如果需要)和 script/cron 中的凭据管理
  • 如果 cron 所需的所有方法/操作都是新的并且与 Web 应用程序中的现有功能不同,那么将它们编码到 Web 应用程序中是否有意义?

关于同一项目中的 Java Spring Boot MVC 和 CLI API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768122/

相关文章:

java - 如何在java中序列化Jdbc4SQLXML类

java - 如何在集成测试中使用spring security?

spring-boot - Spring Boot Web 服务器在 Eclipse 中运行良好,无法在服务器 : missing EmbeddedServletContainerFactory bean 上启动

java - 如何写出好的删除数据的方法来纠正呢?

java - Android Spinner 每行的不同背景

java - 类中的逻辑和数据

java - 使用 Spring 时,如何在错误 500 页面中打印堆栈跟踪?

java - 如何在 Spring boot 中使用 JCS(Rest api)

java - 使用 hsql 检索数据 - 多对一关系

java - 过期 session 出现 NullPointerException