protected static class GspAutoConfiguration.TagLibraryLookupRegistrar extends java.lang.Object implements ImportBeanDefinitionRegistrar
| Modifiers | Name | Description |
|---|---|---|
static java.lang.Class<?>[] |
DEFAULT_TAGLIB_CLASSES |
| Type Params | Return Type | Name and description |
|---|---|---|
|
protected GenericBeanDefinition |
createBeanDefinition(java.lang.Class<?> beanClass) |
|
protected GenericBeanDefinition |
createTagLibBeanDefinition(java.lang.Class<?> beanClass)Tag libraries are wired from their own @Autowired declarations rather than by name.
|
|
public void |
registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry)Registers the tag libraries as beans of the context and the lookup that finds them, which it does once they all exist rather than by holding them. |
|
protected void |
registerTagLibs(BeanDefinitionRegistry registry) |
| Methods inherited from class | Name |
|---|---|
class java.lang.Object |
java.lang.Object#equals(java.lang.Object), java.lang.Object#getClass(), java.lang.Object#hashCode(), java.lang.Object#notify(), java.lang.Object#notifyAll(), java.lang.Object#toString(), java.lang.Object#wait(), java.lang.Object#wait(long), java.lang.Object#wait(long, int) |
Tag libraries are wired from their own @Autowired declarations rather than by name.
A tag library depends on the view resolver, which depends on the template engine, which
depends on the lookup; they break that cycle by declaring the dependency @Lazy.
Autowiring them by name would inject the view resolver eagerly - viewResolver is an
alias of gspViewResolver - and the context would fail to start with a cycle nothing
could break.
Registers the tag libraries as beans of the context and the lookup that finds them, which
it does once they all exist rather than by holding them. Every tag library takes the
lookup itself - TagLibraryInvoker autowires it - so a lookup that held its tag
libraries would be a bean each of them depended on and which depended on each of them,
a cycle an application had to allow before it would start.