Skip to content
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

Backport "Cache by-type lookups in DefaultListableBeanFactory" [SPR-9448] #14083

spring-projects-issues opened this issue May 27, 2012 · 2 comments


Copy link

@spring-projects-issues spring-projects-issues commented May 27, 2012

Chris Beams opened SPR-9448 and commented

Affects: 2.5.6

This issue is a backport sub-task of #11536

1 votes, 4 watchers

Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Jun 27, 2012

Chris Beams commented

commit d24d535c1db843403981cc2c3423e456046d5e69
Author: Chris Beams <>
Commit: Chris Beams <>

    Cache by-type lookups in DefaultListableBeanFactory
    Prior to this change, by-type lookups using DLBF#getBeanNamesForType
    required traversal of all bean definitions within the bean factory
    in order to inspect their bean class for assignability to the target
    type. These operations are comparatively expensive and when there are a
    large number of beans registered within the container coupled with a
    large number of by-type lookups at runtime, the performance impact can
    be severe. The test introduced here demonstrates such a scenario clearly.
    This performance problem is likely to manifest in large Spring-based
    applications using non-singleton beans, particularly request-scoped
    beans that may be created and wired many thousands of times per second.
    This commit introduces a simple ConcurrentHashMap-based caching strategy
    for by-type lookups; container-wide assignability checks happen only
    once on the first by-type lookup and are afterwards cached by type
    with the values in the map being an array of all bean names assignable
    to that type. This means that at runtime when creating and autowiring
    non-singleton beans, the cost of by-type lookups is reduced to that of
    Issue: SPR-9448
    Backport-Issue: SPR-6870
    Backport-Commit: 4c7a1c0a5403b35dd812dae1f2a753538928bb32

Copy link
Collaborator Author

@spring-projects-issues spring-projects-issues commented Aug 5, 2012

Francisco Lozano commented

This backport has been like an early X-mas present, thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
1 participant