Java 如何在RESTAPI控制器中将请求主体类型转换为所需的实体

Java 如何在RESTAPI控制器中将请求主体类型转换为所需的实体,java,spring,spring-mvc,spring-boot,Java,Spring,Spring Mvc,Spring Boot,我的动机是在RESTAPI中编写一个通用保存方法。用户将发送请求正文中的实体,以便根据请求映射字符串将其转换为实体 为什么我想要这个,因为在我的例子中,有多达50-60个实体,根据我的理解,我必须编写许多控制器 我正在努力实现这样的目标 @RequestMapping(value = "/{entity}", method = RequestMethod.POST) @ResponseBody public Object performSave(@PathVariable String enti

我的动机是在RESTAPI中编写一个通用保存方法。用户将发送请求正文中的实体,以便根据请求映射字符串将其转换为实体

为什么我想要这个,因为在我的例子中,有多达50-60个实体,根据我的理解,我必须编写许多控制器

我正在努力实现这样的目标

@RequestMapping(value = "/{entity}", method = RequestMethod.POST)
@ResponseBody
public Object performSave(@PathVariable String entity
        @RequestBody Object entity)  {

    switch(entity){

             case "employee"
              return employeeService.save((Employee)entity);

             case "Boss"
              return bossService.save((Boss)entity);

              default:
               return null;

             }
但我不能这样做,因为Spring无法将JSON请求转换为java.lang.Object

我有什么可能的解决办法

如果我的问题对你没有意义,请让我知道,我会提供更多的细节


提前谢谢

我认为这是不可能的,因为底层映射程序需要json解析到的具体类。该参数只是对实际对象的引用


需要注意的是,当使用REST并从中获益时,不仅仅是有简单的URL可以调用。我们必须将API设计为RESTfull。我建议您在走这条路之前先仔细阅读这个概念。

创建50个控制器有问题,但在一个巨大的switch语句中包含50个不同的服务和调用50个不同的服务方法没有问题?你可以看看SpringDataREST,然后你甚至不需要一个控制器。好的,谢谢你的输入,看起来我没有其他选择了。