我不想让Spring Boot Rest Controller建立case语句,而是希望Spring使用正确的端点。我什至不确定这是否可行,但我希望宇宙能够拯救我。
@PostMapping("/endpoint")
public String one(Greeting greet) {
return "Greeting Posted";
}
@PostMapping("/endpoint")
public String two(Address addr) {
return "Address Posted";
}
当前错误
Caused by: java.lang.IllegalStateException: Ambiguous mapping. Cannot map 'RController' method
public java.lang.String com.example.controller.RController.two(com.example.model.Address)
to {[/endpoint],methods=[POST]}: There is already 'RController' bean method
public java.lang.String com.example.controller.RController.one(com.example.model.Greeting) mapped.
答案 0 :(得分:1)
这不可能。 模棱两可。
作为一种好的做法,如果2个资源将以不同的方式处理数据,则必须为每个资源创建不同的端点。
或者为您提供可能的解决方法,它创建一个ViewModel对象并仅用一种方法处理它。
public class GreetingAddressVM {
private Address address;
private Greeting greeting;
}
我希望为每个动作创建不同的映射。