Merge branch '6.2.x'

# Conflicts:
#	spring-beans/src/main/java/org/springframework/beans/factory/support/DefaultListableBeanFactory.java
This commit is contained in:
Juergen Hoeller
2025-03-26 23:49:54 +01:00
3 changed files with 55 additions and 1 deletions

View File

@@ -1458,7 +1458,7 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
// Cache the merged bean definition for the time being
// (it might still get re-merged later on in order to pick up metadata changes)
if (containingBd == null && (isCacheBeanMetadata() || isBeanEligibleForMetadataCaching(beanName))) {
this.mergedBeanDefinitions.put(beanName, mbd);
cacheMergedBeanDefinition(mbd, beanName);
}
}
if (previous != null) {
@@ -1487,6 +1487,18 @@ public abstract class AbstractBeanFactory extends FactoryBeanRegistrySupport imp
}
}
/**
* Cache the given merged bean definition.
* <p>Subclasses can override this to derive additional cached state
* from the final post-processed bean definition.
* @param mbd the merged bean definition to cache
* @param beanName the name of the bean
* @since 6.2.6
*/
protected void cacheMergedBeanDefinition(RootBeanDefinition mbd, String beanName) {
this.mergedBeanDefinitions.put(beanName, mbd);
}
/**
* Check the given merged bean definition,
* potentially throwing validation exceptions.

View File

@@ -1004,6 +1004,14 @@ public class DefaultListableBeanFactory extends AbstractAutowireCapableBeanFacto
return super.obtainInstanceFromSupplier(supplier, beanName, mbd);
}
@Override
protected void cacheMergedBeanDefinition(RootBeanDefinition mbd, String beanName) {
super.cacheMergedBeanDefinition(mbd, beanName);
if (mbd.isPrimary()) {
this.primaryBeanNames.add(beanName);
}
}
@Override
protected void checkMergedBeanDefinition(RootBeanDefinition mbd, String beanName, @Nullable Object @Nullable [] args) {
super.checkMergedBeanDefinition(mbd, beanName, args);