-
Notifications
You must be signed in to change notification settings - Fork 38.8k
Closed
Labels
status: bulk-closedAn outdated, unresolved issue that's closed in bulk as part of a cleaning processAn outdated, unresolved issue that's closed in bulk as part of a cleaning process
Description
Stéphane Nicoll opened SPR-12584 and commented
Core framework interceptors essentially require the same infrastructure but does not share a lot of code.
For instance, some interceptors are qualified-based (i.e. a qualifier can be set in the annotation to customize the "handler") which brings the need for a smart cache and proper handling for AspectJ (that should clean that cache appropriately since the aspect is basically a singleton for the classloader).
This issue is a general overhaul of that infrastructure that could span other issues along the way depending of the outcome of the initial investigation.
Things to investigate:
- Some interceptor uses a qualifier on the annotation. Instead of retrieving the service every time (
determineXyz) we should cache it. Transaction support has a good support now. ReflectionUtils#doWithMethodscan return the same method several times if it's overridden. If the parent method also has the annotation we may register a proxy or a handler several times for the same bean instance! CheckReflectionUtils.getUniqueDeclaredMethodsinstead
Issue Links:
- Regression in TransactionAspectSupport.determineTransactionManager(…) [SPR-12577] #17178 Regression in TransactionAspectSupport.determineTransactionManager(…)
- MethodValidationPostProcessor using multiple (custom) validators [SPR-12563] #17164 MethodValidationPostProcessor using multiple (custom) validators
Metadata
Metadata
Assignees
Labels
status: bulk-closedAn outdated, unresolved issue that's closed in bulk as part of a cleaning processAn outdated, unresolved issue that's closed in bulk as part of a cleaning process