【问题标题】:Spring boot custom serverSpring Boot 自定义服务器
【发布时间】:2018-09-10 10:27:22
【问题描述】:

我开始使用 SpringBoot 并且非常喜欢它。我看到@RestController 自动将 POJO 序列化为 json。我喜欢这种功能,但想在 Web 服务器上下文之外使用它。 基本上我想拥有 SpringBoot 的所有部分,直到响应为 JSON 格式,但我不想通过 Web 服务器传递它,而是我自己的实现。

为了让 SpringBoot 接受非网络请求并返回非网络响应,我必须实现一个接口吗?

一个明确我想要什么的例子: 现在我可以访问 localhost:8080/hello 并且 SpringBoot 将返回“world”。 有没有办法在控制台上进行这项工作。例如。我在控制台上输入“hello”并按回车键,然后 SpringBoot 将“world”传送到控制台。 因此,我想实现一个控制台界面,而不是通过 tomcat 的 Web 界面,但具有相同的 SpringBoot 功能。

更新:控制台应用程序可能不是正确的示例。我正在寻找更通用的方法。因此,假设我希望 Arduino 能够通过串行蓝牙连接向 SpringBoot 发送“hello”而不是控制台界面,并且 SpringBoot 应该在同一个蓝牙串行连接上返回“world”。我的问题是,我是否需要实现一个接口来告诉 SpringBoot 如何接受 REST 请求以及如何发送响应。而且我不想专注于特定的实现(如控制台或BT串行),但是,一旦创建了SpringBoot应用程序,我只想用BT串行接口或控制台接口替换tomcat Web界面或我想要实现的任何其他接口,但保留所有逻辑(控制器、模型等)。

谢谢。

【问题讨论】:

  • 我还不清楚。您说您希望您的 SB 应用程序接受 REST 请求。这必须通过 HTTP 接口。也许这更像是一个架构问题。而且你想要一个生产者 - 消费者模式。

标签: json spring-boot tomcat console


【解决方案1】:

当然!您可以创建一个控制台应用程序。

您需要创建一个实现 ConsoleRunner 的类。请在此处找到教程:

https://www.baeldung.com/spring-boot-console-app

【讨论】:

    【解决方案2】:

    如果您感兴趣的是 JSON 反序列化。 您可以使用 JacksonObjectMapper 。 你不需要整个 spring-boot web 的东西。

    您可以省略 starter-web 依赖项并使用 CommandLineRunner 和 jackson 来创建一个控制台应用程序,将您的响应/请求反序列化为 json。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-11-13
      • 2018-05-17
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 2019-02-16
      相关资源
      最近更新 更多