В настоящее время у меня есть один контроллер, который обрабатывает GET и POST для групп URL:
@Controller
public class RestGroups {
...
@RequestMapping(method = RequestMethod.GET, value = "/groups")
@ResponseBody
public GroupsDto groups() {
return new GroupsDto(getGroups());
}
@RequestMapping(method = RequestMethod.POST, value = "/groups", headers = "Accept=application/xml")
@ResponseBody
public GroupsDto postGroup(@RequestBody GroupDto groupDto) {
groupSaver.save(groupDto.createEntity());
return groups();
}
Теперь я хотел бы иметь ДВА контроллера, оба назначены для одного и того же URL, но каждый для другого метода, как показано ниже:
@Controller
public class GetGroups {
...
@RequestMapping(method = RequestMethod.GET, value = "/groups")
@ResponseBody
public GroupsDto groups() {
return new GroupsDto(getGroups());
}
...
}
@Controller
public class PostGroup {
...
@RequestMapping(method = RequestMethod.POST, value = "/groups", headers = "Accept=application/xml")
@ResponseBody
public GroupsDto postGroup(@RequestBody GroupDto groupDto) {
groupSaver.save(groupDto.createEntity());
return groups();
}
...
}
Возможно ли это? Потому что теперь я получаю исключение Spring, что один URL не может быть обработан двумя разными контроллерами. Есть ли решение этой проблемы? Я действительно хотел бы разделить эти два совершенно разных действия на два отдельных класса.