【发布时间】:2018-01-17 20:03:35
【问题描述】:
是否有可能在 Springboot 中有两个不同的 @RestControllers 使用不同的 MappingJackson2HttpMessageConverter ? ...或者 MappingJackson2HttpMessageConverter 是 Spring Boot 应用程序中所有 @RestController 通用的吗?
基本上,目标是使用不同的 MappingJackson2HttpMessageConverter 包含不同的 Jackson ObjectMapper,该 ObjectMapper 使用 Jackson MixIn 将(在 Json 中)id 重命名为第二个控制器中的 priceId。
调用第一个控制器会做什么:
http://localhost:8080/controller1/price
{ id: "id", description: "描述" }
调用第二个控制器会做什么:
http://localhost:8080/controller2/price
{ priceId: "id", description: "描述" }
问候
@SpringBootApplication
public class EndpointsApplication {
public static void main(String[] args) {
SpringApplication.run(EndpointsApplication.class, args);
}
@Data // Lombok
@AllArgsConstructor
class Price {
String id;
String description;
}
@RestController
@RequestMapping(value = "/controller1")
class PriceController1 {
@GetMapping(value = "/price")
public Price getPrice() {
return new Price("id", "Description");
}
}
@RestController
@RequestMapping(value = "/controller2")
class PriceController2 {
@GetMapping(value = "/price")
public Price getPrice() {
return new Price("id", "Description");
}
}
}
GitHub:
【问题讨论】:
标签: java spring spring-mvc spring-boot