Description
Sam Brannen opened SPR-13442 and commented
Status Quo
Spring Framework 4.2 introduced support for explicit attribute overrides in meta-annotations via the new @AliasFor
annotation. This new support makes it possible to include a set of predefined composed annotations in several modules of the Spring Framework.
Spring Composed
For the time being, the Spring team is using the spring-composed
project as a playground for trying out new ideas with regard to what kinds of predefined composed annotations Spring should support.
Feedback is welcome!
Candidates for Inclusion
The following candidates are for inclusion in the Spring Framework.
@GetMapping
,@PostMapping
,@PutMapping
,@DeleteMapping
, &@PatchMapping
, for standard Spring MVC controller methods@ApplicationScope
,@SessionScope
,@RequestScope
Possible Candidates for Inclusion
The following candidates are possible for inclusion in the Spring Framework based on early feedback.
@HeadMapping
,@OptionsMapping
, &@TraceMapping
for standard Spring MVC controller methods@GetResource
,@PostResource
,@PutResource
,@DeleteResource
etc. for generic REST-based Spring MVC controller methods with preconfigured response statuses@TransactionalService
,@TransactionalComponent
,@TransactionalRepository
@SingletonScope
,@PrototypeScope
,@GlobalSessionScope
Unlikely Candidates for Inclusion
The following candidates are unlikely for inclusion in the Spring Framework based on early feedback.
@GetJson
,@GetXml
, etc. for opinionated REST-based Spring MVC controller methods@TransactionalController
,@TransactionalRestController
Deliverables
- Determine the set of predefined composed annotations to introduce.
- Create new issues to address individual groups of composed annotations.
- Implement, test, and document the new predefined composed annotations.
Affects: 4.2 GA
Issue Links:
- Custom @RequestMapping annotations [SPR-12296] #16901 Custom
@RequestMapping
annotations - Use AnnotatedElementUtils instead of AnnotationUtils wherever feasible [SPR-13440] #18020 Use AnnotatedElementUtils instead of AnnotationUtils wherever feasible
- Support @ResponseStatus as a merged composed annotation [SPR-13441] #18021 Support
@ResponseStatus
as a merged composed annotation - Introduce common composed annotations for @RequestMapping [SPR-13992] #18565 Introduce common composed annotations for
@RequestMapping
- Introduce common composed annotations for web scopes [SPR-13993] #18566 Introduce common composed annotations for web scopes
- Document Spring Annotation Programming Model in the Wiki [SPR-11515] #16140 Document Spring Annotation Programming Model in the Wiki
- Support @CrossOrigin as a merged composed annotation [SPR-13468] #18047 Support
@CrossOrigin
as a merged composed annotation - Support @Cache* as merged composed annotations [SPR-13475] #18054 Support
@Cache
* as merged composed annotations
7 votes, 17 watchers