To improve diagnostics, we should improve the String representations of bean definitions and bean metadata attributes.
The toString()
implementation of AbstractBeanDefinition
currently includes the bean class name in brackets class [...]
; whereas, everything else is not in brackets and just uses an equals sign -- for example, scope=singleton
.
With modern Spring applications that make heavy use of @Bean
methods in @Configuration
classes, bean definitions do not have a pre-configured bean class name. Thus, it makes sense to align the formatting of the bean class name with the formatting of other properties -- for example, class=...
.
With the recent introduction of @Fallback
support, it would also be good to include the fallback
flag in toString()
alongside the primary
flag.
The String representation of a BeanMetadataAttribute
could also be improved to include the value
in addition to the name
.