Description
As a follow-up to #31962, we would like to investigate the feasibility of supporting multiple @RequestMapping
annotations on a single handler method.
One idea is to merge attributes from multiple @RequestMapping
annotations into a single RequestMappingInfo
instance if they only differ by RequestMethod
.
Another idea is to create one RequestMappingInfo
per @RequestMapping
annotation on a handler method and figure out how to rework our infrastructure to support multiple RequestMappingInfo
instances for a single handler method.
We should also keep in mind that we may potentially decide to support multiple composed @RequestMapping
annotations (e.g., @PostMapping
and @PutMapping
) on a single method without making @RequestMapping
itself a @Repeatable
annotation.
Activity
@PostMapping
,@GetMapping
, etc. annotations are declared #31962@RequestMapping
annotations #32134[-]Support multiple `@RequestMapping` annotations (`@GetMapping`, etc) on a controller method[/-][+]Support multiple @RequestMapping annotations (@GetMapping, etc) on a controller method[/+]rstoyanchev commentedon Apr 18, 2024
While taking a look at this, we should also consider the case of an
@HttpExchange
(now also supported for server side use) and@RequestMapping
on the same method, see #32328.bclozel commentedon Jul 29, 2024
We haven't made any progress on this and we're quite late in the 6.2 milestones to introduce such an important behavior change.
I also think that introducing such a change would probably require an "opt-in" configuration flag as this is a quite disruptive change. With this enabled, the web framework could potentially expose web endpoints that were not exposed previously (because ignored) and this could be hard for developers to track this change down. Given where the original issues and their background (#31962 and #32328), I don't think this should be treated as a feature widely requested by the community, or overall making sense with the existing model.
I'll move this back to 6.x backlog and I guess I'm not in favor of this feature overall.