Performance improvement: more efficient AnnotProxyFieldValueFactory cache
-------------------------------------------------------------------------
Key: WICKET-2344
URL: https://issues.apache.org/jira/browse/WICKET-2344
Project: Wicket
Issue Type: Improvement
Components: wicket-spring
Reporter: Arnout Engelen
AnnotProxyFieldValueFactory holds a cache of proxies for singleton beans. The
cache is checked like this:
// only check the cache if the bean is a singleton
if (locator.isSingletonBean() && cache.containsKey(locator)) {
return cache.get(locator);
}
However, when the bean is referenced by type rather than by name (the default
and common case), 'locator.isSingletonBean()' is a quite expensive operation,
because it looks up the bean name by type (it indirectly calls
BeanFactoryUtils.beanNamesForTypeIncludingAncestors()).
I think the call to locator.isSingletonBean() should either be omitted entirely
(the cache only contains singleton proxies anyway), or omitted when
annot.name() is blank.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.