Open iparadiso opened 2 days ago
I think https://github.com/spring-projects/spring-framework/commit/552936627a4242a839ab00156970134ec933eef9 is the commit that changed things. Issue #33330
Add a breakpoint in ConfigurationClassBeanDefinitionReader.isOverriddenByExistingDefinition
. In the previous version we return true
here on the second call. In the newer version, we return false
.
It's interesting that we don't get a hard failure.
Observed Issue
In Spring Boot 3.3, duplicate named beans can be defined where
@Primary
can be used as the default. In Spring Boot 3.4 RC1, this behavior is no longer the same.Consider the following example of two named beans with different behavior.
When validated in the following test, SB 3.3 expectedly injects the "truthful" bean version marked as
@Primary
.When this same test is applied in Spring Boot 3.4 RC1, the
@Primary
"foo" bean is no longer created, causing this test evaluation to fail.Is this an exepected change in behavior?
Reproducer
This test is available here