Spring Boot自定义服务器

时间:2018-09-10 10:27:23

标签: json spring-boot tomcat console

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

是否有一个我必须实现的接口才能使SpringBoot接受非Web请求并返回非Web响应。

一个例子来弄清楚我想要什么: 现在我可以访问localhost:8080 / hello,SpringBoot将返回“ world”。 有没有办法使它在控制台上工作。例如。我在控制台上输入“ hello”,然后按Enter键,SpringBoot将“ world”传递到控制台。 因此,我想通过一个相同的SpringBoot功能来实现一个控制台界面,而不是通过tomcat来建立一个Web界面。

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

谢谢。

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

如果您感兴趣的是JSON反序列化。 您可以使用JacksonObjectMapper。 您不需要整个spring-boot网络内容。

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