-
Notifications
You must be signed in to change notification settings - Fork 38.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Overhaul annotation handling code #22560
Labels
Comments
sbrannen
added
the
in: core
Issues in core modules (aop, beans, core, context, expression)
label
Mar 12, 2019
jhoeller
added
type: task
A general task
and removed
type: enhancement
A general enhancement
labels
Sep 28, 2020
Closing this issue umbrella issue since all related issues have been addressed. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
This issue collects the various tasks and ideas related to overhauling our annotation handling code. This issue will be edited as additional ideas arise.
Prerequisites
These tasks will generally help with implementing the new API:
API Improvements
These are the core API related tasks:
Minor Performance Improvements
Initially the new API will cause an additional overhead. We can reclaim a few milliseconds in a few other areas of the framework to help:
Migrate classes to use the new API directly
A few classes would benefit from using the new annotations API directly. Especially relevant are any areas of the code that make several utils calls, when they could hold onto a
MergedAnnotations
instance:Make use of annotation index
Indexing annotations to do less work may help performance.
Introduce MergedAnnotation finder methods #22569Programmatic annotation presence registry (allowing for index integration) #22578Investigate logic based annotation indexes (e.g. Jackson classes won't have Spring annotations)Overhaul metadata code
The existing ASM based meta-data reader code currently recursively processes annotations. The new
MergedAnnotations
API may be suitable to expose directly. It might also be possible to not use ASM when reading meta-annotations and instead just use standard reflection.Accidentally introduced regressions
The text was updated successfully, but these errors were encountered: