我想让Spring使用正确的端点,而不是为我的Spring Boot Rest Controller构建case语句。我甚至不确定这是可能的,但我希望宇宙可以拯救我。
@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.
这是不可能的。这是模棱两可的。
作为一种好的做法,如果2个资源以不同方式处理数据,则必须为每个资源创建不同的端点。
或者可能的解决方法,它创建一个ViewModel对象并在一个方法中处理它。
public class GreetingAddressVM {
private Address address;
private Greeting greeting;
}
我更喜欢为每个动作创建不同的映射。