Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.
Sign upIntroduce predefined composed annotations in core Spring [SPR-13442] #18022
Comments
This comment has been minimized.
This comment has been minimized.
Marcel Overdijk commented I especially like the |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented Hi Marcel Overdijk, Glad you like them! Keep in mind that it's easy to implement these composed annotations on your own project, even if we don't backport them to 4.2.x. Actually, that's how this whole thing started. I created So if you want to use one of the proposed annotations, you can always just copy-n-paste the code into your own project or... since yesterday, add a dependency on Regards, Sam |
This comment has been minimized.
This comment has been minimized.
Marcel Overdijk commented Sure, can easily copy them, or indeed as I have done yesterday added the dependency. |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented
True... but Spring Composed is still a playground for the time being while we work out what kinds of annotations (and default attribute values) make sense and while we gather input from the community on what types of predefined composed annotations to support. So if you have further ideas, please let us know. We are currently not planning on backporting such annotations to 4.2.x; however, if there is enough interest from the community we will take it into consideration. |
This comment has been minimized.
This comment has been minimized.
Juergen Hoeller commented From my perspective, the main problem is that there are almost unlimited combinations possible, creating more confusion than clarity for the casual observer. However, the main benefit of selecting composed annotations into Spring Framework proper is guidance, with a smaller set of annotations delivering a much better job in that respect, so it's a tough balance to find. For that kind of effort, the 4.3 timeframe is ideal... and 4.3 RC1 is planned for early March, so it's not far away at all. If there is obvious low-hanging fruit in specific corners of the framework, we may add an annotation or two right away in the 4.2.x line. However, for mainstream usage such as request mappings or bean scoping, we'll have to leave some room for further discussions, in particular about naming and about the specific default values. We only have one shot here: once an annotation is official, we have to live with its design; even the slightest variation would require yet another new annotation. Juergen |
This comment has been minimized.
This comment has been minimized.
Tomoyuki Ikeya commented In my opinion, |
This comment has been minimized.
This comment has been minimized.
Juergen Hoeller commented On a related note to scope annotation naming (which I agree with), we should also have our new web scope annotations default to proxy mode Juergen |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented See #18565 for common composed annotations for |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented FYI: anyone interested in the currently proposed composed annotations for |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented See #18566 for common composed annotations for web scopes. |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented FYI: anyone interested in the currently proposed composed annotations for web scopes can take a look at the following pull request: |
This comment has been minimized.
This comment has been minimized.
Sam Brannen commented Resolving this issue as Complete since #18565 and #18566 cover all composed annotations currently targeted for inclusion in Spring Framework 4.3. |
This comment has been minimized.
This comment has been minimized.
Tim commented I don't agree with the intention of this. Features should not be introduced into a framework just to take advantage of a new capability. |
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
Affects: 4.2 GA
Issue Links:
@RequestMapping
annotations@ResponseStatus
as a merged composed annotation@RequestMapping
@CrossOrigin
as a merged composed annotation@Cache
* as merged composed annotations7 votes, 17 watchers