BeanPostProcessor implementation for customized annotation that annotated injected-object.BeanDefinition UtilitiesAbstractAnnotationBeanPostProcessor as the substitutionAnnotation UtilitiesConfigurationBeanBindingPostProcessorBeanFactory Utilities classEnvironment to Configuration bean under specified prefix.Class UtilitiesBeanPostProcessor class to bind the configuration beanImportBeanDefinitionRegistrar implementation for @EnableConfigurationBindingRegistrar class for EnableConfigurationBeanBindingsits binding.ConfigurationBeanBinder implementationAbstractApplicationContext is an implementation of ApplicationEventPublisher
can't handle the early event that is published
before ApplicationEventMulticaster's initialization, in this scenario, DeferredApplicationEventPublisher
is introduced and used to resolve DeferredApplicationEventPublisher.publishEvent(ApplicationEvent) too early
to publish ApplicationEvent when Spring ApplicationContexts' ApplicationEventMulticaster is not ready.ConfigurableListableBeanFactory by typeproperties.EnableConfigurationBeanBindingsField UtilitiesAnnotation type maps from MethodBeanPostProcessor AdapterAnnotationAttributesAnnotationAttributesAnnotationAttributesAnnotationAttributes, if the argument tryMergedAnnotation is true,
the AnnotationAttributes will be got from
merged annotation first,
if failed, and then to get from
normal oneAnnotation attributesAnnotation attributesAnnotation attributesConfigurableListableBeanFactory by type.ConfigurableListableBeanFactory by type.ListableBeanFactory by type.ListableBeanFactory by type.BeanFactoryField ValueField ValueField ValueMap in injected field.Map in injected field.Map in injected method.Map in injected method.annotation attributes and Bean Classannotation and Bean ClassClass including ancestors(BeanFactory).Class.ListableBeanFactory in specified bean type.PropertiesPropertiesPropertiesPropertiesPropertyValues from ConfigurableEnvironmentAliasRegistryAnnotation present on Method's declaring class or parameters or itself.Bean with name without return value after initialization,
This method will be invoked by BeanPostProcessor#postProcessAfterInitialization(Object, String)Bean with name without return value before initialization,
This method will be invoked by BeanPostProcessor#postProcessBeforeInitialization(Object, String)PropertySources UtilitiesPropertyValues Utilitiesregistry@ComponentsMap via AnnotationAwareOrderComparator.sort(List) ruleannotationthe annotation attributes after merging and resolving the placeholdersCopyright © 2019. All rights reserved.