需求描述:
项目中可能有这么一种情况,我们对外提供一个http
接口服务,但是这个接口需要接收某一类具有共同特征的参数(父类 – 子类)。比如一个消息服务接口去提供发送邮件,短信,根据传入的消息类型不同而调用不同的发送逻辑,即接口接收父类类型,传入的参数需要反序列化为实际的子类类型。
文章目录
接口示例
/**
* 暴露http接口,供feign调用
*
* @author tangjizhouchn@foxmail.com
* @date 2019/9/10
*/
@RestController
public class MessageController {
@Autowired
private RabbitTemplate rabbitTemplate;
@PostMapping("/api/v1/send")
public void send(@RequestBody MessageContext messageContext) {
rabbitTemplate.convertAndSend("t_message", messageContext);
}
}
类图结构
接口接收一个父类类型,但是实际上传入的类型为子类类型。
根据类型反序列化(多态支持)
父类
/**
* 消息体父类
*
* @author tangjizhouchn@foxmail.com
* @date 2019/9/10
*/
@Data
// 根据字段