将对象从Angular8发送到Spring Boot

将对象从Angular8发送到Spring Boot,angular,spring-boot,web-development-server,Angular,Spring Boot,Web Development Server,我对网络开发相当陌生,我承认,在网上阅读了几篇指南之后,我仍然对一些基本概念有点困惑。 我有一个非常好用的Angular8表单:我插入数据并单击“提交” 并在控制台中打印表单的数据(我跟随以供参考) 这是我的搜索消息的内容。ts(型号的类别): 现在,我正在尝试编写一个Spring Boot应用程序,它将接收model对象,并且我将简单地打印输出相同的数据。这个过程不应该涉及任何数据库(这就是为什么我感到困惑的原因:我在网上找到的所有指南都是关于将服务器上的db连接到Angular视图的)。我该

我对网络开发相当陌生,我承认,在网上阅读了几篇指南之后,我仍然对一些基本概念有点困惑。 我有一个非常好用的Angular8表单:我插入数据并单击“提交”

并在控制台中打印表单的数据(我跟随以供参考)

这是我的
搜索消息的内容。ts
(型号
的类别)


现在,我正在尝试编写一个Spring Boot应用程序,它将接收
model
对象,并且我将简单地打印输出相同的数据。这个过程不应该涉及任何数据库(这就是为什么我感到困惑的原因:我在网上找到的所有指南都是关于将服务器上的db连接到Angular视图的)。我该怎么做

在Spring Boot中,您必须定义一个控制器类,它公开您将从Angular应用程序调用的端点。

@RestController
@RequestMapping("/path")
public CustomController {
    @PostMapping("message")
    public ResponseEntity<?> addModel(@RequestBody SearchMessage message) {

        // do what you need with the element (ex. write to a db, print data..)
        System.out.println("Data received: " + message.toString());

        return ResponseEntity.ok().build();

    }
}
并且,假设后端应用程序在端口
8081
上运行,您可以像这样向端点发送post:

class SearchMessage {
    private int id; 
    private String inputText;
    private String targetSite;
    private int searchLimit;
    private boolean details;

    // getters and setters
}
http://localhost:8081/your-app-context-path/path/message
其中,正文必须与您在方法参数
message
中定义的
SearchMessage
类兼容。
请注意,在
application.properties
文件中添加此属性,可以定义应用程序的上下文路径:

server.servlet.context-path=/myCoolApp

您可以在这篇文章中找到一个完整的工作示例。另请参见。

如果你需要更多的细节或解释,请告诉我

嗨,你能添加你在Angular中使用的模型类吗?谢谢你的评论@A.Wolf。我刚刚加上去的!再次感谢。当你说“主体必须与
SearchMessage
类兼容”是什么意思?欢迎!只有后端的
SearchMessage
类必须具有与前端的
SearchMessage
类兼容的字段,即数字字段在后端应成为整数或浮点字段,并且必须具有相同的名称。很明显,但是如果它们有不同的类型或名称,那么从前端传递到后端对象的编组将失败。我还添加了<代码>搜索消息< /代码>类。如果答案帮助您解决问题,请考虑接受它:)我几乎设法解决了这个问题。不管怎么说,你的回答真的很有帮助,所以我还是会接受的:)我还有几个问题(也许是琐碎的问题):所以我必须在两个不同的端口上同时运行这两个应用程序,对吗?那么这篇文章的角度又如何呢?
http://localhost:8081/your-app-context-path/path/message
server.servlet.context-path=/myCoolApp